feat(packages/excalidraw): export applyDarkModeFilter and simplify (#11429)

This commit is contained in:
David Luzar
2026-06-01 15:43:45 +02:00
committed by GitHub
parent c08be69618
commit 3372149277
9 changed files with 53 additions and 51 deletions
+4 -3
View File
@@ -1995,9 +1995,10 @@ class App extends React.Component<AppProps, AppState> {
}
}}
style={{
background: isDarkTheme
? applyDarkModeFilter(this.state.viewBackgroundColor)
: this.state.viewBackgroundColor,
background: applyDarkModeFilter(
this.state.viewBackgroundColor,
isDarkTheme,
),
zIndex: 2,
border: "none",
display: "block",
+3
View File
@@ -7,6 +7,7 @@ import React, {
} from "react";
import {
applyDarkModeFilter,
DEFAULT_IMAGE_OPTIONS,
DEFAULT_UI_OPTIONS,
isShallowEqual,
@@ -450,3 +451,5 @@ export function useExcalidrawStateValue(
// -----------------------------------------------------------------------------
export { _useOnAppStateChange as useOnExcalidrawStateChange };
export { applyDarkModeFilter };
+4 -4
View File
@@ -62,10 +62,10 @@ export const bootstrapCanvas = ({
context.clearRect(0, 0, normalizedWidth, normalizedHeight);
}
context.save();
context.fillStyle =
theme === THEME.DARK
? applyDarkModeFilter(viewBackgroundColor)
: viewBackgroundColor;
context.fillStyle = applyDarkModeFilter(
viewBackgroundColor,
theme === THEME.DARK,
);
context.fillRect(0, 0, normalizedWidth, normalizedHeight);
context.restore();
} else {
+12 -9
View File
@@ -386,9 +386,10 @@ const renderElementToSvg = (
const path = svgRoot.ownerDocument.createElementNS(SVG_NS, "path");
path.setAttribute(
"fill",
renderConfig.theme === THEME.DARK
? applyDarkModeFilter(element.strokeColor)
: element.strokeColor,
applyDarkModeFilter(
element.strokeColor,
renderConfig.theme === THEME.DARK,
),
);
path.setAttribute("d", shape);
wrapper.appendChild(path);
@@ -621,9 +622,10 @@ const renderElementToSvg = (
rect.setAttribute("fill", "none");
rect.setAttribute(
"stroke",
renderConfig.theme === THEME.DARK
? applyDarkModeFilter(FRAME_STYLE.strokeColor)
: FRAME_STYLE.strokeColor,
applyDarkModeFilter(
FRAME_STYLE.strokeColor,
renderConfig.theme === THEME.DARK,
),
);
rect.setAttribute("stroke-width", FRAME_STYLE.strokeWidth.toString());
@@ -677,9 +679,10 @@ const renderElementToSvg = (
text.setAttribute("font-size", `${element.fontSize}px`);
text.setAttribute(
"fill",
renderConfig.theme === THEME.DARK
? applyDarkModeFilter(element.strokeColor)
: element.strokeColor,
applyDarkModeFilter(
element.strokeColor,
renderConfig.theme === THEME.DARK,
),
);
text.setAttribute("text-anchor", textAnchor);
text.setAttribute("style", "white-space: pre;");
+1 -3
View File
@@ -459,9 +459,7 @@ export const exportToSvg = async (
rect.setAttribute("height", `${height}`);
rect.setAttribute(
"fill",
exportWithDarkMode
? applyDarkModeFilter(viewBackgroundColor)
: viewBackgroundColor,
applyDarkModeFilter(viewBackgroundColor, exportWithDarkMode),
);
svgRoot.appendChild(rect);
}
+4 -4
View File
@@ -392,10 +392,10 @@ export const textWysiwyg = ({
),
textAlign,
verticalAlign,
color:
appState.theme === THEME.DARK
? applyDarkModeFilter(updatedTextElement.strokeColor)
: updatedTextElement.strokeColor,
color: applyDarkModeFilter(
updatedTextElement.strokeColor,
appState.theme === THEME.DARK,
),
opacity: updatedTextElement.opacity / 100,
maxHeight: `${editorMaxHeight}px`,
});