react-admin-base-bootstrap 0.9.0 → 0.9.2
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.
|
@@ -6,3 +6,15 @@ export default function ThemeProvider({ themes, defaultTheme, children }: {
|
|
|
6
6
|
defaultTheme: any;
|
|
7
7
|
children: any;
|
|
8
8
|
}): React.JSX.Element;
|
|
9
|
+
export declare function rawCssLoader(cb: any): () => {
|
|
10
|
+
default: {
|
|
11
|
+
use: () => Promise<void>;
|
|
12
|
+
unuse: () => void;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare function urlCssLoader(link: any): () => {
|
|
16
|
+
default: {
|
|
17
|
+
use: () => void;
|
|
18
|
+
unuse: () => void;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
1
10
|
import React, { createContext, useContext, useEffect, useMemo } from "react";
|
|
2
11
|
import { useLocalStorage } from "react-admin-base";
|
|
3
12
|
const ThemeContext = createContext(null);
|
|
@@ -13,7 +22,7 @@ export default function ThemeProvider({ themes, defaultTheme, children }) {
|
|
|
13
22
|
const [theme, setTheme] = state;
|
|
14
23
|
const rTheme = theme || defaultTheme || 'light';
|
|
15
24
|
useEffect(function () {
|
|
16
|
-
const promise = (themes[rTheme] || themes[defaultTheme]).css()
|
|
25
|
+
const promise = Promise.resolve((themes[rTheme] || themes[defaultTheme]).css())
|
|
17
26
|
.then(css => {
|
|
18
27
|
css.default.use();
|
|
19
28
|
return css;
|
|
@@ -26,3 +35,39 @@ export default function ThemeProvider({ themes, defaultTheme, children }) {
|
|
|
26
35
|
return React.createElement(AllThemesContext.Provider, { value: themes },
|
|
27
36
|
React.createElement(ThemeContext.Provider, { value: val }, children));
|
|
28
37
|
}
|
|
38
|
+
export function rawCssLoader(cb) {
|
|
39
|
+
const styleTag = document.createElement('style');
|
|
40
|
+
let loaded = false;
|
|
41
|
+
return () => ({
|
|
42
|
+
default: {
|
|
43
|
+
use: function () {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
document.head.appendChild(styleTag);
|
|
46
|
+
if (!loaded) {
|
|
47
|
+
loaded = true;
|
|
48
|
+
styleTag.innerHTML = yield cb();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
unuse: function () {
|
|
53
|
+
document.head.removeChild(styleTag);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
export function urlCssLoader(link) {
|
|
59
|
+
const linkTag = document.createElement('link');
|
|
60
|
+
linkTag.rel = 'stylesheet';
|
|
61
|
+
linkTag.type = 'text/css';
|
|
62
|
+
linkTag.href = link;
|
|
63
|
+
return () => ({
|
|
64
|
+
default: {
|
|
65
|
+
use: function () {
|
|
66
|
+
document.head.appendChild(linkTag);
|
|
67
|
+
},
|
|
68
|
+
unuse: function () {
|
|
69
|
+
document.head.removeChild(linkTag);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -16,11 +16,11 @@ import CheckBox from './Components/CheckBox';
|
|
|
16
16
|
import ErrorBoundary from './Components/ErrorBoundary';
|
|
17
17
|
import { useMenuState, useIsMobile } from './Components/MenuState';
|
|
18
18
|
import TopProgressBar from './Components/TopProgressBar';
|
|
19
|
-
import ThemeProvider, { useTheme, useAllThemes } from './Components/ThemeProvider';
|
|
19
|
+
import ThemeProvider, { useTheme, useAllThemes, rawCssLoader, urlCssLoader } from './Components/ThemeProvider';
|
|
20
20
|
import StepList, { StepItem } from './Components/StepList';
|
|
21
21
|
import PasswordInput from './Components/PasswordInput';
|
|
22
22
|
import DefaultValidatorOptions from './Components/DefaultValidatorOptions';
|
|
23
23
|
import DragAndDropArrow from './Components/DragAndDropArrow';
|
|
24
24
|
import BootstrapOptionsProvider, { useBootstrapOptions } from './Components/BootstrapOptions';
|
|
25
25
|
import BootstrapModal from './Components/BootstrapModal';
|
|
26
|
-
export { ThemeProvider, useTheme, useAllThemes, useIsMobile, useMenuState, DefaultValidatorOptions, PasswordInput, StepList, StepItem, TopProgressBar, CRUD, ModalEntityEditor, CRUDActions, Relative, ApiSelect, Preview, ExcelExportButton, ExternalLoginButton, SingleFilePicker, MultiFilePicker, ImagePicker, BootstrapTable, EntityEditor, GoToTop, Validator, ValueValidator, ValidationErrors, LoadingButton, BootstrapDataTable, IdColumn, Column, ActionsColumn, Actions, useDataTableContext, RowRenderer, CustomRenderer, LanguageProvider, useLanguage, LanguageSwitcher, ErrorBoundary, CheckBox, DragAndDropArrow, useBootstrapOptions, BootstrapOptionsProvider, BootstrapModal, CreateSelect, useRow, useRows };
|
|
26
|
+
export { ThemeProvider, useTheme, useAllThemes, rawCssLoader, urlCssLoader, useIsMobile, useMenuState, DefaultValidatorOptions, PasswordInput, StepList, StepItem, TopProgressBar, CRUD, ModalEntityEditor, CRUDActions, Relative, ApiSelect, Preview, ExcelExportButton, ExternalLoginButton, SingleFilePicker, MultiFilePicker, ImagePicker, BootstrapTable, EntityEditor, GoToTop, Validator, ValueValidator, ValidationErrors, LoadingButton, BootstrapDataTable, IdColumn, Column, ActionsColumn, Actions, useDataTableContext, RowRenderer, CustomRenderer, LanguageProvider, useLanguage, LanguageSwitcher, ErrorBoundary, CheckBox, DragAndDropArrow, useBootstrapOptions, BootstrapOptionsProvider, BootstrapModal, CreateSelect, useRow, useRows };
|
package/lib/esm/index.js
CHANGED
|
@@ -16,11 +16,11 @@ import CheckBox from './Components/CheckBox';
|
|
|
16
16
|
import ErrorBoundary from './Components/ErrorBoundary';
|
|
17
17
|
import { useMenuState, useIsMobile } from './Components/MenuState';
|
|
18
18
|
import TopProgressBar from './Components/TopProgressBar';
|
|
19
|
-
import ThemeProvider, { useTheme, useAllThemes } from './Components/ThemeProvider';
|
|
19
|
+
import ThemeProvider, { useTheme, useAllThemes, rawCssLoader, urlCssLoader } from './Components/ThemeProvider';
|
|
20
20
|
import StepList, { StepItem } from './Components/StepList';
|
|
21
21
|
import PasswordInput from './Components/PasswordInput';
|
|
22
22
|
import DefaultValidatorOptions from './Components/DefaultValidatorOptions';
|
|
23
23
|
import DragAndDropArrow from './Components/DragAndDropArrow';
|
|
24
24
|
import BootstrapOptionsProvider, { useBootstrapOptions } from './Components/BootstrapOptions';
|
|
25
25
|
import BootstrapModal from './Components/BootstrapModal';
|
|
26
|
-
export { ThemeProvider, useTheme, useAllThemes, useIsMobile, useMenuState, DefaultValidatorOptions, PasswordInput, StepList, StepItem, TopProgressBar, CRUD, ModalEntityEditor, CRUDActions, Relative, ApiSelect, Preview, ExcelExportButton, ExternalLoginButton, SingleFilePicker, MultiFilePicker, ImagePicker, BootstrapTable, EntityEditor, GoToTop, Validator, ValueValidator, ValidationErrors, LoadingButton, BootstrapDataTable, IdColumn, Column, ActionsColumn, Actions, useDataTableContext, RowRenderer, CustomRenderer, LanguageProvider, useLanguage, LanguageSwitcher, ErrorBoundary, CheckBox, DragAndDropArrow, useBootstrapOptions, BootstrapOptionsProvider, BootstrapModal, CreateSelect, useRow, useRows };
|
|
26
|
+
export { ThemeProvider, useTheme, useAllThemes, rawCssLoader, urlCssLoader, useIsMobile, useMenuState, DefaultValidatorOptions, PasswordInput, StepList, StepItem, TopProgressBar, CRUD, ModalEntityEditor, CRUDActions, Relative, ApiSelect, Preview, ExcelExportButton, ExternalLoginButton, SingleFilePicker, MultiFilePicker, ImagePicker, BootstrapTable, EntityEditor, GoToTop, Validator, ValueValidator, ValidationErrors, LoadingButton, BootstrapDataTable, IdColumn, Column, ActionsColumn, Actions, useDataTableContext, RowRenderer, CustomRenderer, LanguageProvider, useLanguage, LanguageSwitcher, ErrorBoundary, CheckBox, DragAndDropArrow, useBootstrapOptions, BootstrapOptionsProvider, BootstrapModal, CreateSelect, useRow, useRows };
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { createContext,
|
|
1
|
+
import React, { createContext, useContext, useEffect, useMemo, useReducer, useRef } from "react";
|
|
2
2
|
import { useLocalStorage } from "react-admin-base";
|
|
3
3
|
|
|
4
4
|
const ThemeContext = createContext(null as any);
|
|
@@ -9,7 +9,7 @@ export function useTheme() {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export function useAllThemes() {
|
|
12
|
-
return useContext(AllThemesContext);
|
|
12
|
+
return useContext(AllThemesContext);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export default function ThemeProvider({ themes, defaultTheme, children }) {
|
|
@@ -19,7 +19,7 @@ export default function ThemeProvider({ themes, defaultTheme, children }) {
|
|
|
19
19
|
const rTheme = theme || defaultTheme || 'light';
|
|
20
20
|
|
|
21
21
|
useEffect(function() {
|
|
22
|
-
const promise = (themes[rTheme] || themes[defaultTheme]).css()
|
|
22
|
+
const promise = Promise.resolve((themes[rTheme] || themes[defaultTheme]).css())
|
|
23
23
|
.then(css => {
|
|
24
24
|
css.default.use();
|
|
25
25
|
return css;
|
|
@@ -38,3 +38,43 @@ export default function ThemeProvider({ themes, defaultTheme, children }) {
|
|
|
38
38
|
</ThemeContext.Provider>
|
|
39
39
|
</AllThemesContext.Provider>;
|
|
40
40
|
}
|
|
41
|
+
|
|
42
|
+
export function rawCssLoader(cb) {
|
|
43
|
+
const styleTag = document.createElement('style');
|
|
44
|
+
|
|
45
|
+
let loaded = false;
|
|
46
|
+
|
|
47
|
+
return () => ({
|
|
48
|
+
default: {
|
|
49
|
+
use: async function() {
|
|
50
|
+
document.head.appendChild(styleTag);
|
|
51
|
+
|
|
52
|
+
if (!loaded) {
|
|
53
|
+
loaded = true;
|
|
54
|
+
styleTag.innerHTML = await cb();
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
unuse: function() {
|
|
58
|
+
document.head.removeChild(styleTag);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function urlCssLoader(link) {
|
|
65
|
+
const linkTag = document.createElement('link');
|
|
66
|
+
linkTag.rel = 'stylesheet';
|
|
67
|
+
linkTag.type = 'text/css';
|
|
68
|
+
linkTag.href = link;
|
|
69
|
+
|
|
70
|
+
return () => ({
|
|
71
|
+
default: {
|
|
72
|
+
use: function() {
|
|
73
|
+
document.head.appendChild(linkTag);
|
|
74
|
+
},
|
|
75
|
+
unuse: function() {
|
|
76
|
+
document.head.removeChild(linkTag);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -17,7 +17,7 @@ import CheckBox from './Components/CheckBox';
|
|
|
17
17
|
import ErrorBoundary from './Components/ErrorBoundary';
|
|
18
18
|
import { useMenuState, useIsMobile } from './Components/MenuState';
|
|
19
19
|
import TopProgressBar from './Components/TopProgressBar';
|
|
20
|
-
import ThemeProvider, { useTheme, useAllThemes } from './Components/ThemeProvider';
|
|
20
|
+
import ThemeProvider, { useTheme, useAllThemes, rawCssLoader, urlCssLoader } from './Components/ThemeProvider';
|
|
21
21
|
import StepList, { StepItem } from './Components/StepList';
|
|
22
22
|
import PasswordInput from './Components/PasswordInput';
|
|
23
23
|
import DefaultValidatorOptions from './Components/DefaultValidatorOptions';
|
|
@@ -26,7 +26,7 @@ import BootstrapOptionsProvider, { useBootstrapOptions } from './Components/Boot
|
|
|
26
26
|
import BootstrapModal from './Components/BootstrapModal';
|
|
27
27
|
|
|
28
28
|
export {
|
|
29
|
-
ThemeProvider, useTheme, useAllThemes,
|
|
29
|
+
ThemeProvider, useTheme, useAllThemes, rawCssLoader, urlCssLoader,
|
|
30
30
|
useIsMobile, useMenuState,
|
|
31
31
|
DefaultValidatorOptions,
|
|
32
32
|
PasswordInput,
|