@preply/ds-web-root 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { useTheme, useColorScheme } from '@preply/ds-web-core';
|
|
1
|
+
import { useTheme, useColorScheme, useClassNameExtract } from '@preply/ds-web-core';
|
|
2
2
|
import React, { useState, useMemo, useEffect } from 'react';
|
|
3
3
|
|
|
4
|
+
const ROOT_TARGET_NONE = 'none';
|
|
4
5
|
const getTargetElement = (target) => {
|
|
5
|
-
if (typeof target === 'string') {
|
|
6
|
+
if (typeof target === 'string' && target !== ROOT_TARGET_NONE) {
|
|
6
7
|
const el = document.getElementById(target);
|
|
7
8
|
if (!el) {
|
|
8
9
|
throw new Error(`Target element not found: "${target}"`);
|
|
9
10
|
}
|
|
10
11
|
return el;
|
|
11
12
|
}
|
|
12
|
-
return target;
|
|
13
|
+
return target !== ROOT_TARGET_NONE ? target : undefined;
|
|
13
14
|
};
|
|
14
15
|
const Root = ({ tag, target, children }) => {
|
|
15
16
|
const { theme } = useTheme();
|
|
@@ -17,6 +18,7 @@ const Root = ({ tag, target, children }) => {
|
|
|
17
18
|
const [previousClassNames, setPreviousClassNames] = useState([]);
|
|
18
19
|
const Tag = tag || 'div';
|
|
19
20
|
const classNames = useMemo(() => [...theme.getClassName().split(' '), ...colorScheme.getClassName().split(' ')], [colorScheme, theme]);
|
|
21
|
+
useClassNameExtract(theme.getClassName());
|
|
20
22
|
useEffect(() => {
|
|
21
23
|
const el = getTargetElement(target);
|
|
22
24
|
if (el) {
|
|
@@ -32,4 +34,4 @@ const Root = ({ tag, target, children }) => {
|
|
|
32
34
|
};
|
|
33
35
|
|
|
34
36
|
export { Root };
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9vdC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jvb3QvY29tcG9uZW50cy9Sb290LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDbGFzc05hbWVFeHRyYWN0LCB1c2VDb2xvclNjaGVtZSwgdXNlVGhlbWUgfSBmcm9tICdAcHJlcGx5L2RzLXdlYi1jb3JlJztcbmltcG9ydCBSZWFjdCwgeyBGQywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgUk9PVF9UQVJHRVRfTk9ORSA9ICdub25lJztcblxuZXhwb3J0IHR5cGUgUm9vdFRhcmdldCA9IHN0cmluZyB8IEVsZW1lbnQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9vdFByb3BzIHtcbiAgICB0YWc/OiBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHM7XG4gICAgdGFyZ2V0PzogUm9vdFRhcmdldDtcbn1cblxuY29uc3QgZ2V0VGFyZ2V0RWxlbWVudCA9ICh0YXJnZXQ/OiBzdHJpbmcgfCBFbGVtZW50KTogRWxlbWVudCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnICYmIHRhcmdldCAhPT0gUk9PVF9UQVJHRVRfTk9ORSkge1xuICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhcmdldCk7XG4gICAgICAgIGlmICghZWwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGFyZ2V0IGVsZW1lbnQgbm90IGZvdW5kOiBcIiR7dGFyZ2V0fVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0ICE9PSBST09UX1RBUkdFVF9OT05FID8gdGFyZ2V0IDogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IFJvb3Q6IEZDPFJvb3RQcm9wcz4gPSAoeyB0YWcsIHRhcmdldCwgY2hpbGRyZW4gfSkgPT4ge1xuICAgIGNvbnN0IHsgdGhlbWUgfSA9IHVzZVRoZW1lKCk7XG4gICAgY29uc3QgeyBjb2xvclNjaGVtZSB9ID0gdXNlQ29sb3JTY2hlbWUoKTtcbiAgICBjb25zdCBbcHJldmlvdXNDbGFzc05hbWVzLCBzZXRQcmV2aW91c0NsYXNzTmFtZXNdID0gdXNlU3RhdGU8c3RyaW5nW10+KFtdKTtcblxuICAgIGNvbnN0IFRhZyA9IHRhZyB8fCAnZGl2JztcbiAgICBjb25zdCBjbGFzc05hbWVzID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gWy4uLnRoZW1lLmdldENsYXNzTmFtZSgpLnNwbGl0KCcgJyksIC4uLmNvbG9yU2NoZW1lLmdldENsYXNzTmFtZSgpLnNwbGl0KCcgJyldLFxuICAgICAgICBbY29sb3JTY2hlbWUsIHRoZW1lXSxcbiAgICApO1xuXG4gICAgdXNlQ2xhc3NOYW1lRXh0cmFjdCh0aGVtZS5nZXRDbGFzc05hbWUoKSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGdldFRhcmdldEVsZW1lbnQodGFyZ2V0KTtcbiAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKC4uLnByZXZpb3VzQ2xhc3NOYW1lcyk7XG4gICAgICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzTmFtZXMpO1xuICAgICAgICB9XG4gICAgICAgIHNldFByZXZpb3VzQ2xhc3NOYW1lcyhjbGFzc05hbWVzKTtcbiAgICB9LCBbY2xhc3NOYW1lcywgcHJldmlvdXNDbGFzc05hbWVzLCB0YXJnZXRdKTtcblxuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcbiAgICB9XG5cbiAgICByZXR1cm4gPFRhZyBjbGFzc05hbWU9e2NsYXNzTmFtZXMuam9pbignICcpfT57Y2hpbGRyZW59PC9UYWc+O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztBQVNoQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBeUI7SUFDL0MsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLGdCQUFnQixFQUFFO1FBQzNELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDNUQ7UUFDRCxPQUFPLEVBQUUsQ0FBQztLQUNiO0lBQ0QsT0FBTyxNQUFNLEtBQUssZ0JBQWdCLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FBQztBQUM1RCxDQUFDLENBQUM7TUFFVyxJQUFJLEdBQWtCLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtJQUN6RCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7SUFDN0IsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLFFBQVEsQ0FBVyxFQUFFLENBQUMsQ0FBQztJQUUzRSxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FDdEIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDcEYsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQ3ZCLENBQUM7SUFFRixtQkFBbUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUUxQyxTQUFTLENBQUM7UUFDTixNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLEVBQUUsRUFBRTtZQUNKLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztZQUMzQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1NBQ25DO1FBQ0QscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDckMsRUFBRSxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRTdDLElBQUksTUFBTSxFQUFFO1FBQ1IsT0FBTywwQ0FBRyxRQUFRLENBQUksQ0FBQztLQUMxQjtJQUVELE9BQU8sb0JBQUMsR0FBRyxJQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFHLFFBQVEsQ0FBTyxDQUFDO0FBQ2xFOzs7OyJ9
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { ColorSchemeName, ThemeName } from '@preply/ds-core';
|
|
2
2
|
import { FC } from 'react';
|
|
3
|
+
import type { RootTarget } from '../components/Root';
|
|
3
4
|
export interface RootProviderProps {
|
|
4
5
|
theme?: ThemeName;
|
|
5
6
|
colorScheme?: ColorSchemeName;
|
|
6
7
|
tag?: keyof JSX.IntrinsicElements;
|
|
7
|
-
target?:
|
|
8
|
+
target?: RootTarget;
|
|
8
9
|
}
|
|
9
10
|
export declare const RootProvider: FC<RootProviderProps>;
|
|
@@ -10,4 +10,4 @@ const RootProvider = ({ theme = THEME_DEFAULT, colorScheme = COLOR_SCHEME_DEFAUL
|
|
|
10
10
|
React.createElement(Root, { tag: tag, target: target }, children)))));
|
|
11
11
|
|
|
12
12
|
export { RootProvider };
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9vdFByb3ZpZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm9vdC9wcm92aWRlcnMvUm9vdFByb3ZpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbG9yU2NoZW1lTmFtZSwgVGhlbWVOYW1lIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcbmltcG9ydCB7IENPTE9SX1NDSEVNRV9ERUZBVUxULCBUSEVNRV9ERUZBVUxUIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcbmltcG9ydCB7XG4gICAgQ29sb3JTY2hlbWVQcm92aWRlcixcbiAgICBUaGVtZVByb3ZpZGVyLFxuICAgIFRoZW1lc1Byb3ZpZGVyLFxuICAgIGNvbG9yU2NoZW1lcyxcbn0gZnJvbSAnQHByZXBseS9kcy13ZWItY29yZSc7XG5pbXBvcnQgUmVhY3QsIHsgRkMgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHRoZW1lcyB9IGZyb20gJy4uLy4uL3RoZW1lcyc7XG5pbXBvcnQgdHlwZSB7IFJvb3RUYXJnZXQgfSBmcm9tICcuLi9jb21wb25lbnRzL1Jvb3QnO1xuaW1wb3J0IHsgUm9vdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvUm9vdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9vdFByb3ZpZGVyUHJvcHMge1xuICAgIHRoZW1lPzogVGhlbWVOYW1lO1xuICAgIGNvbG9yU2NoZW1lPzogQ29sb3JTY2hlbWVOYW1lO1xuICAgIHRhZz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50cztcbiAgICB0YXJnZXQ/OiBSb290VGFyZ2V0O1xufVxuXG5leHBvcnQgY29uc3QgUm9vdFByb3ZpZGVyOiBGQzxSb290UHJvdmlkZXJQcm9wcz4gPSAoe1xuICAgIHRoZW1lID0gVEhFTUVfREVGQVVMVCxcbiAgICBjb2xvclNjaGVtZSA9IENPTE9SX1NDSEVNRV9ERUZBVUxULFxuICAgIHRhZyxcbiAgICB0YXJnZXQsXG4gICAgY2hpbGRyZW4sXG59KSA9PiAoXG4gICAgPFRoZW1lc1Byb3ZpZGVyIHRoZW1lcz17T2JqZWN0LnZhbHVlcyh0aGVtZXMpfSBjb2xvclNjaGVtZXM9e2NvbG9yU2NoZW1lc30+XG4gICAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgICAgICA8Q29sb3JTY2hlbWVQcm92aWRlciBjb2xvclNjaGVtZT17Y29sb3JTY2hlbWV9PlxuICAgICAgICAgICAgICAgIDxSb290IHRhZz17dGFnfSB0YXJnZXQ9e3RhcmdldH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICA8L1Jvb3Q+XG4gICAgICAgICAgICA8L0NvbG9yU2NoZW1lUHJvdmlkZXI+XG4gICAgICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgICA8L1RoZW1lc1Byb3ZpZGVyPlxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7TUFxQmEsWUFBWSxHQUEwQixDQUFDLEVBQ2hELEtBQUssR0FBRyxhQUFhLEVBQ3JCLFdBQVcsR0FBRyxvQkFBb0IsRUFDbEMsR0FBRyxFQUNILE1BQU0sRUFDTixRQUFRLEdBQ1gsTUFDRyxvQkFBQyxjQUFjLElBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxFQUFFLFlBQVk7SUFDckUsb0JBQUMsYUFBYSxJQUFDLEtBQUssRUFBRSxLQUFLO1FBQ3ZCLG9CQUFDLG1CQUFtQixJQUFDLFdBQVcsRUFBRSxXQUFXO1lBQ3pDLG9CQUFDLElBQUksSUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQ3pCLFFBQVEsQ0FDTixDQUNXLENBQ1YsQ0FDSDs7OzsifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@preply/ds-web-root",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -18,18 +18,18 @@
|
|
|
18
18
|
"dev": "run build:rollup -w"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@preply/ds-core": "0.
|
|
22
|
-
"@preply/ds-theme-base-ui": "0.
|
|
23
|
-
"@preply/ds-theme-preply-ui": "0.
|
|
24
|
-
"@preply/ds-web-core": "0.
|
|
21
|
+
"@preply/ds-core": "0.9.0",
|
|
22
|
+
"@preply/ds-theme-base-ui": "0.9.0",
|
|
23
|
+
"@preply/ds-theme-preply-ui": "0.9.0",
|
|
24
|
+
"@preply/ds-web-core": "0.9.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
|
-
"@preply/ds-core": "0.
|
|
28
|
-
"@preply/ds-theme-base-ui": "0.
|
|
29
|
-
"@preply/ds-theme-preply-ui": "0.
|
|
30
|
-
"@preply/ds-web-core": "0.
|
|
27
|
+
"@preply/ds-core": "0.9.0",
|
|
28
|
+
"@preply/ds-theme-base-ui": "0.9.0",
|
|
29
|
+
"@preply/ds-theme-preply-ui": "0.9.0",
|
|
30
|
+
"@preply/ds-web-core": "0.9.0",
|
|
31
31
|
"react": "^16.8.3",
|
|
32
32
|
"react-dom": "^16.8.3"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "74a4ba2dc0d5c1c77751e13b5c089f73bcedfacb"
|
|
35
35
|
}
|