PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.13.0
Code Block Pro – Beautiful Syntax Highlighting v1.13.0
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
← All changes | src/hooks/useDefaults.ts +94 -185 1.28.01.13.0 View file →
@@ -1,201 +1,110 @@
1 1 import { useEffect, useRef } from '@wordpress/element';
2 -import type { Theme } from 'shiki';
3 -import { useThemeStore, useThemeStoreReady } from '../state/theme';
4 -import type { AttributesPropsAndSetter } from '../types';
2 +import { Theme } from 'shiki';
3 +import { useGlobalStore } from '../state/global';
4 +import { useThemeStore } from '../state/theme';
5 +import { AttributesPropsAndSetter } from '../types';
5 6
6 7 export const useDefaults = ({
7 - attributes,
8 - setAttributes,
8 + attributes,
9 + setAttributes,
9 10 }: AttributesPropsAndSetter) => {
10 - const {
11 - theme,
12 - fontSize,
13 - fontFamily,
14 - lineHeight,
15 - copyButton,
16 - copyButtonType,
17 - copyButtonString,
18 - copyButtonStringCopied,
19 - headerType,
20 - footerType,
21 - clampFonts,
22 - disablePadding,
23 - lineNumbers,
24 - highlightingHover,
25 - tabSize,
26 - useTabs,
27 - seeMoreType,
28 - seeMoreString,
29 - seeMoreTransition,
30 - seeMoreCollapse,
31 - seeMoreCollapseString,
32 - } = attributes;
33 - const {
34 - previousTheme,
35 - previousFontSize,
36 - previousFontFamily,
37 - previousLineHeight,
38 - previousHeaderType,
39 - previousFooterType,
40 - previousClampFonts,
41 - previousDisablePadding,
42 - previousLineNumbers,
43 - previousHighlightingHover,
44 - previousCopyButton,
45 - previousCopyButtonType,
46 - previousCopyButtonString,
47 - previousCopyButtonStringCopied,
48 - previousCopyButtonUseTextarea,
49 - previousTabSize,
50 - previousUseTabs,
51 - previousSeeMoreType,
52 - previousSeeMoreString,
53 - previousSeeMoreTransition,
54 - previousSeeMoreCollapse,
55 - previousSeeMoreCollapseString,
56 - } = useThemeStore();
57 - const ready = useThemeStoreReady();
58 - const once = useRef(false);
11 + const {
12 + theme,
13 + fontSize,
14 + fontFamily,
15 + lineHeight,
16 + copyButton,
17 + headerType,
18 + footerType,
19 + clampFonts,
20 + disablePadding,
21 + lineNumbers,
22 + } = attributes;
23 + const { previousSettings } = useGlobalStore();
24 + const {
25 + previousTheme,
26 + previousFontSize,
27 + previousFontFamily,
28 + previousLineHeight,
29 + previousHeaderType,
30 + previousFooterType,
31 + previousClampFonts,
32 + previousDisablePadding,
33 + previousLineNumbers,
34 + } = useThemeStore();
35 + const once = useRef(false);
59 36
60 - useEffect(() => {
61 - if (once.current) return;
62 - if (copyButton !== undefined || !previousCopyButton) return;
63 - setAttributes({ copyButton: previousCopyButton });
64 - }, [previousCopyButton, copyButton, setAttributes]);
37 + useEffect(() => {
38 + if (once.current) return;
39 + if (copyButton !== undefined || !previousSettings.copyButton) return;
40 + setAttributes({ copyButton: previousSettings.copyButton });
41 + }, [previousSettings, copyButton, setAttributes]);
65 42
66 - useEffect(() => {
67 - if (once.current) return;
68 - if (copyButtonType) return;
69 - setAttributes({ copyButtonType: previousCopyButtonType });
70 - }, [previousCopyButtonType, copyButtonType, setAttributes]);
43 + useEffect(() => {
44 + if (once.current) return;
45 + if (theme || !previousTheme) return;
46 + setAttributes({ theme: previousTheme as Theme });
47 + }, [previousTheme, theme, setAttributes]);
71 48
72 - useEffect(() => {
73 - if (once.current) return;
74 - // Checks undefined to avoid invalidating old blocks
75 - if (copyButtonString || copyButtonString === undefined) return;
76 - setAttributes({ copyButtonString: previousCopyButtonString });
77 - }, [previousCopyButtonString, copyButtonString, setAttributes]);
49 + useEffect(() => {
50 + if (once.current) return;
51 + if (fontSize || !previousFontSize) return;
52 + setAttributes({ fontSize: previousFontSize });
53 + }, [previousFontSize, fontSize, setAttributes]);
78 54
79 - useEffect(() => {
80 - if (once.current) return;
81 - // Checks undefined to avoid invalidating old blocks
82 - if (copyButtonStringCopied || copyButtonStringCopied === undefined) {
83 - return;
84 - }
85 - const cpyP = previousCopyButtonStringCopied;
86 - setAttributes({ copyButtonStringCopied: cpyP });
87 - }, [previousCopyButtonStringCopied, copyButtonStringCopied, setAttributes]);
55 + useEffect(() => {
56 + if (once.current) return;
57 + if (fontFamily || fontFamily === '' || previousFontFamily === undefined)
58 + return;
59 + setAttributes({ fontFamily: previousFontFamily });
60 + }, [previousFontFamily, fontFamily, setAttributes]);
88 61
89 - useEffect(() => {
90 - if (once.current) return;
91 - setAttributes({ copyButtonUseTextarea: previousCopyButtonUseTextarea });
92 - }, [previousCopyButtonUseTextarea, setAttributes]);
62 + useEffect(() => {
63 + if (once.current) return;
64 + if (lineHeight || !previousLineHeight) return;
65 + setAttributes({ lineHeight: previousLineHeight });
66 + }, [previousLineHeight, lineHeight, setAttributes]);
93 67
94 - useEffect(() => {
95 - if (once.current) return;
96 - if (theme) return;
97 - setAttributes({ theme: previousTheme as Theme });
98 - }, [previousTheme, theme, setAttributes]);
68 + useEffect(() => {
69 + if (once.current) return;
70 + if (headerType || !previousHeaderType) return;
71 + setAttributes({ headerType: previousHeaderType });
72 + }, [previousHeaderType, headerType, setAttributes]);
99 73
100 - useEffect(() => {
101 - if (once.current) return;
102 - if (fontSize) return;
103 - setAttributes({ fontSize: previousFontSize });
104 - }, [previousFontSize, fontSize, setAttributes]);
74 + useEffect(() => {
75 + if (once.current) return;
76 + if (footerType !== undefined || previousFooterType === undefined)
77 + return;
78 + setAttributes({ footerType: previousFooterType });
79 + }, [previousFooterType, footerType, setAttributes]);
105 80
106 - useEffect(() => {
107 - if (once.current) return;
108 - if (fontFamily || fontFamily === '') return;
109 - setAttributes({ fontFamily: previousFontFamily });
110 - }, [previousFontFamily, fontFamily, setAttributes]);
81 + useEffect(() => {
82 + if (once.current) return;
83 + if (clampFonts !== undefined || previousClampFonts === undefined)
84 + return;
85 + setAttributes({ clampFonts: previousClampFonts });
86 + }, [previousClampFonts, clampFonts, setAttributes]);
111 87
112 - useEffect(() => {
113 - if (once.current) return;
114 - if (lineHeight) return;
115 - setAttributes({ lineHeight: previousLineHeight });
116 - }, [previousLineHeight, lineHeight, setAttributes]);
88 + useEffect(() => {
89 + if (once.current) return;
90 + if (
91 + disablePadding !== undefined ||
92 + previousDisablePadding === undefined
93 + )
94 + return;
95 + setAttributes({ disablePadding: previousDisablePadding });
96 + }, [previousDisablePadding, disablePadding, setAttributes]);
117 97
118 - useEffect(() => {
119 - if (once.current) return;
120 - if (headerType) return;
121 - setAttributes({ headerType: previousHeaderType });
122 - }, [previousHeaderType, headerType, setAttributes]);
98 + useEffect(() => {
99 + if (once.current) return;
100 + if (lineNumbers !== undefined || previousLineNumbers === undefined)
101 + return;
102 + setAttributes({ lineNumbers: previousLineNumbers });
103 + }, [previousLineNumbers, lineNumbers, setAttributes]);
123 104
124 - useEffect(() => {
125 - if (once.current) return;
126 - if (footerType !== undefined) return;
127 - setAttributes({ footerType: previousFooterType });
128 - }, [previousFooterType, footerType, setAttributes]);
129 -
130 - useEffect(() => {
131 - if (once.current) return;
132 - if (clampFonts !== undefined) return;
133 - setAttributes({ clampFonts: previousClampFonts });
134 - }, [previousClampFonts, clampFonts, setAttributes]);
135 -
136 - useEffect(() => {
137 - if (once.current) return;
138 - if (disablePadding !== undefined) return;
139 - setAttributes({ disablePadding: previousDisablePadding });
140 - }, [previousDisablePadding, disablePadding, setAttributes]);
141 -
142 - useEffect(() => {
143 - if (once.current) return;
144 - if (lineNumbers !== undefined) return;
145 - setAttributes({ lineNumbers: previousLineNumbers });
146 - }, [previousLineNumbers, lineNumbers, setAttributes]);
147 -
148 - useEffect(() => {
149 - if (once.current) return;
150 - if (tabSize !== undefined) return;
151 - setAttributes({ tabSize: previousTabSize });
152 - }, [previousTabSize, tabSize, setAttributes]);
153 -
154 - useEffect(() => {
155 - if (once.current) return;
156 - if (useTabs !== undefined) return;
157 - setAttributes({ useTabs: previousUseTabs });
158 - }, [previousUseTabs, useTabs, setAttributes]);
159 -
160 - useEffect(() => {
161 - if (once.current) return;
162 - if (seeMoreType !== undefined) return;
163 - setAttributes({ seeMoreType: previousSeeMoreType });
164 - }, [previousSeeMoreType, seeMoreType, setAttributes]);
165 -
166 - useEffect(() => {
167 - if (once.current) return;
168 - if (seeMoreString !== undefined) return;
169 - setAttributes({ seeMoreString: previousSeeMoreString });
170 - }, [previousSeeMoreString, seeMoreString, setAttributes]);
171 -
172 - useEffect(() => {
173 - if (once.current) return;
174 - if (seeMoreTransition !== undefined) return;
175 - setAttributes({ seeMoreTransition: previousSeeMoreTransition });
176 - }, [previousSeeMoreTransition, seeMoreTransition, setAttributes]);
177 -
178 - useEffect(() => {
179 - if (once.current) return;
180 - if (seeMoreCollapse !== undefined) return;
181 - setAttributes({ seeMoreCollapse: previousSeeMoreCollapse });
182 - }, [previousSeeMoreCollapse, seeMoreCollapse, setAttributes]);
183 -
184 - useEffect(() => {
185 - if (once.current) return;
186 - if (seeMoreCollapseString !== undefined) return;
187 - setAttributes({ seeMoreCollapseString: previousSeeMoreCollapseString });
188 - }, [previousSeeMoreCollapseString, seeMoreCollapseString, setAttributes]);
189 -
190 - useEffect(() => {
191 - if (once.current) return;
192 - if (highlightingHover !== undefined) return;
193 - setAttributes({ highlightingHover: previousHighlightingHover });
194 - }, [previousHighlightingHover, highlightingHover, setAttributes]);
195 -
196 - useEffect(() => {
197 - requestAnimationFrame(() => {
198 - once.current = true;
199 - });
200 - }, [ready]);
105 + useEffect(() => {
106 + requestAnimationFrame(() => {
107 + once.current = true;
108 + });
109 + }, []);
201 110 };