mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	switch excalidraw theme (light/dark) based on trilium setting
This commit is contained in:
		| @@ -24,6 +24,11 @@ const TPL = ` | |||||||
|             transform: none; |             transform: none; | ||||||
|         } |         } | ||||||
|          |          | ||||||
|  |         /* collaboration not possible so hide the button */ | ||||||
|  |         .CollabButton { | ||||||
|  |             display: none !important; | ||||||
|  |         } | ||||||
|  |  | ||||||
|         </style> |         </style> | ||||||
|         <!-- height here necessary. otherwise excalidraw not shown --> |         <!-- height here necessary. otherwise excalidraw not shown --> | ||||||
|         <div class="canvas-render" style="height: 100%"></div> |         <div class="canvas-render" style="height: 100%"></div> | ||||||
| @@ -112,6 +117,8 @@ export default class ExcalidrawTypeWidget extends TypeWidget { | |||||||
|  |  | ||||||
|         this.$widget.toggleClass("full-height", true); // only add |         this.$widget.toggleClass("full-height", true); // only add | ||||||
|         this.$render = this.$widget.find('.canvas-render'); |         this.$render = this.$widget.find('.canvas-render'); | ||||||
|  |         const documentStyle = window.getComputedStyle(document.documentElement); | ||||||
|  |         this.themeStyle = documentStyle.getPropertyValue('--theme-style')?.trim(); | ||||||
|  |  | ||||||
|         libraryLoader |         libraryLoader | ||||||
|             .requireLibrary(libraryLoader.EXCALIDRAW) |             .requireLibrary(libraryLoader.EXCALIDRAW) | ||||||
| @@ -185,6 +192,8 @@ export default class ExcalidrawTypeWidget extends TypeWidget { | |||||||
|  |  | ||||||
|             const {elements, appState, files} = content; |             const {elements, appState, files} = content; | ||||||
|  |  | ||||||
|  |             appState.theme = this.themeStyle; | ||||||
|  |  | ||||||
|             /** |             /** | ||||||
|              * use widths and offsets of current view, since stored appState has the state from |              * use widths and offsets of current view, since stored appState has the state from | ||||||
|              * previous edit. using the stored state would lead to pointer mismatch. |              * previous edit. using the stored state would lead to pointer mismatch. | ||||||
| @@ -365,18 +374,14 @@ export default class ExcalidrawTypeWidget extends TypeWidget { | |||||||
|                     ref: excalidrawWrapperRef |                     ref: excalidrawWrapperRef | ||||||
|                 }, |                 }, | ||||||
|                 React.createElement(Excalidraw.default, { |                 React.createElement(Excalidraw.default, { | ||||||
|  |                     theme: "light", // not in effect, but causes the theme toggle button to disappear | ||||||
|                     ref: excalidrawRef, |                     ref: excalidrawRef, | ||||||
|                     width: dimensions.width, |                     width: dimensions.width, | ||||||
|                     height: dimensions.height, |                     height: dimensions.height, | ||||||
|                     // initialData: InitialData, |  | ||||||
|                     onPaste: (data, event) => { |                     onPaste: (data, event) => { | ||||||
|                         this.log("Verbose: excalidraw internal paste. No trilium action implemented.", data, event); |                         this.log("Verbose: excalidraw internal paste. No trilium action implemented.", data, event); | ||||||
|                     }, |                     }, | ||||||
|                     onChange: debounce(this.onChangeHandler, this.DEBOUNCE_TIME_ONCHANGEHANDLER), |                     onChange: debounce(this.onChangeHandler, this.DEBOUNCE_TIME_ONCHANGEHANDLER), | ||||||
|                     // onPointerUpdate: (payload) => console.log(payload), |  | ||||||
|                     onCollabButtonClick: () => { |  | ||||||
|                         window.alert("You clicked on collab button. No collaboration is implemented."); |  | ||||||
|                     }, |  | ||||||
|                     viewModeEnabled: false, |                     viewModeEnabled: false, | ||||||
|                     zenModeEnabled: false, |                     zenModeEnabled: false, | ||||||
|                     gridModeEnabled: false, |                     gridModeEnabled: false, | ||||||
|   | |||||||
| @@ -79,3 +79,7 @@ body ::-webkit-calendar-picker-indicator { | |||||||
| body .CodeMirror { | body .CodeMirror { | ||||||
|     filter: invert(90%) hue-rotate(180deg); |     filter: invert(90%) hue-rotate(180deg); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .excalidraw.theme--dark { | ||||||
|  |     --theme-filter: invert(80%) hue-rotate(180deg) !important; | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user