@vonaffenfels/contentful-slate-editor 1.0.26 → 1.0.30
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.
- package/package.json +4 -4
- package/src/components/Dialog.js +1 -10
- package/src/components/EditorField.js +38 -2
- package/src/scss/index.scss +1 -0
- package/webpack.config.js +22 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vonaffenfels/contentful-slate-editor",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.30",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"prepublish": "yarn run build",
|
|
6
6
|
"dev": "yarn run start",
|
|
@@ -89,10 +89,10 @@
|
|
|
89
89
|
"webpack-dev-server": "^4.0.0-beta.2"
|
|
90
90
|
},
|
|
91
91
|
"dependencies": {
|
|
92
|
-
"@vonaffenfels/slate-editor": "^1.0.
|
|
93
|
-
"webpack": "5.
|
|
92
|
+
"@vonaffenfels/slate-editor": "^1.0.30",
|
|
93
|
+
"webpack": "5.88.2"
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "fe88a0b3ce82331fa3d7193a4cd62b8e2c8ecfb9",
|
|
96
96
|
"publishConfig": {
|
|
97
97
|
"access": "public"
|
|
98
98
|
}
|
package/src/components/Dialog.js
CHANGED
|
@@ -21,27 +21,18 @@ const Dialog = ({
|
|
|
21
21
|
},
|
|
22
22
|
];
|
|
23
23
|
const [value, setValue] = useState(sdk.parameters.invocation.value || defaultValue);
|
|
24
|
-
const [loadedStorybookStories, setLoadedStorybookStories] = useState([]);
|
|
25
|
-
|
|
26
|
-
const loadStories = async () => {
|
|
27
|
-
setLoadedStorybookStories(await storybookStories());
|
|
28
|
-
};
|
|
29
24
|
|
|
30
25
|
const saveChanges = () => {
|
|
31
26
|
sdk.close(value);
|
|
32
27
|
};
|
|
33
28
|
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
loadStories();
|
|
36
|
-
}, []);
|
|
37
|
-
|
|
38
29
|
switch (sdk.parameters.invocation.type) {
|
|
39
30
|
case "cloudinary":
|
|
40
31
|
return <DialogCloudinary sdk={sdk} config={sdk.parameters.invocation}/>;
|
|
41
32
|
default:
|
|
42
33
|
return <div className="relative flex h-full max-h-full justify-between">
|
|
43
34
|
<BlockEditor
|
|
44
|
-
storybookStories={
|
|
35
|
+
storybookStories={storybookStories}
|
|
45
36
|
onChange={setValue}
|
|
46
37
|
elementPropsMap={elementPropsMap}
|
|
47
38
|
value={value}
|
|
@@ -11,6 +11,9 @@ import storybookStories from "storybookStories";
|
|
|
11
11
|
// eslint-disable-next-line import/no-unresolved
|
|
12
12
|
import componentLoader from "@vonaffenfels/slate-editor/componentLoader";
|
|
13
13
|
|
|
14
|
+
let isLoadingCountGlobal = 0;
|
|
15
|
+
let controller = new AbortController();
|
|
16
|
+
|
|
14
17
|
const EditorField = ({
|
|
15
18
|
fieldSdk,
|
|
16
19
|
windowSdk,
|
|
@@ -33,6 +36,7 @@ const EditorField = ({
|
|
|
33
36
|
];
|
|
34
37
|
const [value, setValue] = useState(validateValue(loadedValue));
|
|
35
38
|
const [externalValue, setExternalValue] = useState(value);
|
|
39
|
+
const [isLoadingCount, setIsLoadingCount] = useState(isLoadingCount);
|
|
36
40
|
const isVisible = useOnScreen(wrapperRef);
|
|
37
41
|
|
|
38
42
|
function validateValue(value) {
|
|
@@ -89,7 +93,7 @@ const EditorField = ({
|
|
|
89
93
|
fakeActiveContent[field] = entrySdk.fields[field].getValue();
|
|
90
94
|
}
|
|
91
95
|
|
|
92
|
-
return <div ref={wrapperRef} className="editor-field">
|
|
96
|
+
return <div ref={wrapperRef} className="editor-field h-full">
|
|
93
97
|
<BlockEditor
|
|
94
98
|
onChange={onChange}
|
|
95
99
|
value={validateValue(value)}
|
|
@@ -98,8 +102,40 @@ const EditorField = ({
|
|
|
98
102
|
elementPropsMap={elementPropsMap}
|
|
99
103
|
storybookComponentLoader={componentLoader}
|
|
100
104
|
storybookStories={storybookStories}
|
|
105
|
+
isLoading={isLoadingCount !== 0}
|
|
101
106
|
storybookComponentDataLoader={async (block, attributes) => {
|
|
102
|
-
|
|
107
|
+
let loaderResult = {};
|
|
108
|
+
setIsLoadingCount(++isLoadingCountGlobal);
|
|
109
|
+
|
|
110
|
+
controller.abort();
|
|
111
|
+
|
|
112
|
+
controller = new AbortController();
|
|
113
|
+
|
|
114
|
+
try {
|
|
115
|
+
const fetchUrl = `/api/loader/?${new URLSearchParams({
|
|
116
|
+
portal: portal,
|
|
117
|
+
block: block,
|
|
118
|
+
variables: JSON.stringify({
|
|
119
|
+
...attributes,
|
|
120
|
+
entries: null,
|
|
121
|
+
items: null,
|
|
122
|
+
}),
|
|
123
|
+
})}`;
|
|
124
|
+
loaderResult = await fetch(fetchUrl, {signal: controller.signal}).then(res => res.json());
|
|
125
|
+
|
|
126
|
+
if (loaderResult) {
|
|
127
|
+
for (let key in loaderResult) {
|
|
128
|
+
attributes[key] = loaderResult[key];
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
} catch (e) {
|
|
132
|
+
console.error(`Error in loader for ${block}`);
|
|
133
|
+
console.error(e);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
setIsLoadingCount(--isLoadingCountGlobal);
|
|
137
|
+
|
|
138
|
+
return loaderResult;
|
|
103
139
|
}}
|
|
104
140
|
onStorybookElementClick={onStorybookElementClick}
|
|
105
141
|
/>
|
package/src/scss/index.scss
CHANGED
package/webpack.config.js
CHANGED
|
@@ -72,11 +72,21 @@ module.exports = ({
|
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
test: /\.s[ac]ss$/i,
|
|
75
|
-
include:
|
|
75
|
+
include: [
|
|
76
|
+
path.resolve(__dirname, 'src', 'scss'),
|
|
77
|
+
relativePathToComponents,
|
|
78
|
+
...transpilePaths,
|
|
79
|
+
],
|
|
76
80
|
use: [
|
|
77
81
|
"style-loader",
|
|
78
|
-
{
|
|
79
|
-
|
|
82
|
+
{
|
|
83
|
+
loader: 'css-loader',
|
|
84
|
+
options: {importLoaders: 1},
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
loader: 'postcss-loader',
|
|
88
|
+
options: {postcssOptions: postCssConfig},
|
|
89
|
+
},
|
|
80
90
|
"sass-loader",
|
|
81
91
|
],
|
|
82
92
|
},
|
|
@@ -91,7 +101,10 @@ module.exports = ({
|
|
|
91
101
|
modules: {exportLocalsConvention: "camelCase"},
|
|
92
102
|
},
|
|
93
103
|
},
|
|
94
|
-
{
|
|
104
|
+
{
|
|
105
|
+
loader: 'postcss-loader',
|
|
106
|
+
options: {postcssOptions: postCssConfig},
|
|
107
|
+
},
|
|
95
108
|
],
|
|
96
109
|
},
|
|
97
110
|
{
|
|
@@ -103,7 +116,10 @@ module.exports = ({
|
|
|
103
116
|
loader: 'css-loader',
|
|
104
117
|
options: {importLoaders: 1},
|
|
105
118
|
},
|
|
106
|
-
{
|
|
119
|
+
{
|
|
120
|
+
loader: 'postcss-loader',
|
|
121
|
+
options: {postcssOptions: postCssConfig},
|
|
122
|
+
},
|
|
107
123
|
],
|
|
108
124
|
},
|
|
109
125
|
{
|
|
@@ -152,9 +168,7 @@ module.exports = ({
|
|
|
152
168
|
path: false,
|
|
153
169
|
timers: false,
|
|
154
170
|
},
|
|
155
|
-
alias: {
|
|
156
|
-
storybookStories: '@vonaffenfels/slate-editor/storyLoader.js',
|
|
157
|
-
},
|
|
171
|
+
alias: {storybookStories: '@vonaffenfels/slate-editor/storyLoader.js'},
|
|
158
172
|
},
|
|
159
173
|
output: {
|
|
160
174
|
filename: '[name].js',
|