@nascentdigital/funnel-editor-contentful 5.0.1 → 5.0.3
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/dist/EditorApp.js +11 -9
- package/dist/EditorPageRouter.d.ts +1 -0
- package/dist/EditorPageRouter.js +34 -0
- package/dist/EditorPageRoutes.d.ts +1 -0
- package/dist/EditorPageRoutes.js +16 -0
- package/dist/EntryEditor.js +30 -29
- package/dist/EntrySidebar.js +26 -5
- package/dist/NotFound.d.ts +1 -0
- package/dist/NotFound.js +18 -0
- package/dist/asset/index.d.ts +1 -0
- package/dist/{core/api → asset}/index.js +1 -3
- package/dist/{core → asset}/repository/AssetRepository.d.ts +11 -3
- package/dist/{core → asset}/repository/AssetRepository.js +6 -5
- package/dist/asset/repository/index.d.ts +1 -0
- package/dist/{core → asset}/repository/index.js +0 -4
- package/dist/collection/controller/{LocalCollectionController.d.ts → ContentfulCollectionController.d.ts} +17 -11
- package/dist/collection/controller/ContentfulCollectionController.js +278 -0
- package/dist/collection/controller/ContentfulCollectionControllerContainer.d.ts +5 -0
- package/dist/collection/controller/ContentfulCollectionControllerContainer.js +28 -0
- package/dist/collection/controller/index.d.ts +3 -4
- package/dist/collection/controller/index.js +3 -4
- package/dist/collection/controller/useContentfulCollectionController.d.ts +2 -0
- package/dist/collection/controller/useContentfulCollectionController.js +8 -0
- package/dist/{core → collection}/domain/Collection.d.ts +11 -2
- package/dist/{core → collection}/domain/Collection.js +76 -0
- package/dist/{core → collection}/domain/index.d.ts +0 -1
- package/dist/{core → collection}/domain/index.js +0 -1
- package/dist/collection/index.d.ts +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/repository/CollectionRepository.d.ts +49 -0
- package/dist/collection/repository/CollectionRepository.js +223 -0
- package/dist/collection/repository/index.d.ts +1 -0
- package/dist/{core/contentful → collection/repository}/index.js +1 -5
- package/dist/collection/screens/CollectionEditor.js +23 -6
- package/dist/core/bridge/AppBridge.d.ts +31 -0
- package/dist/core/bridge/AppBridge.js +160 -0
- package/dist/core/bridge/AppBridgeContainer.d.ts +3 -3
- package/dist/core/bridge/AppBridgeContainer.js +8 -44
- package/dist/core/bridge/AppBridgeContext.d.ts +7 -8
- package/dist/core/bridge/AppBridgeContext.js +1 -6
- package/dist/core/bridge/BridgeLifecycleMessage.d.ts +7 -0
- package/dist/core/bridge/BridgeLifecycleMessage.js +12 -0
- package/dist/core/bridge/IAppBridgeMessage.d.ts +16 -0
- package/dist/core/bridge/IAppBridgeMessage.js +12 -0
- package/dist/core/bridge/index.d.ts +2 -1
- package/dist/core/bridge/index.js +2 -1
- package/dist/core/bridge/useAppBridge.d.ts +2 -8
- package/dist/core/bridge/useAppBridge.js +24 -15
- package/dist/core/client/ContentfulClientContainer.d.ts +8 -0
- package/dist/core/client/ContentfulClientContainer.js +43 -0
- package/dist/core/client/ContentfulClientContext.d.ts +8 -0
- package/dist/core/client/ContentfulClientContext.js +8 -0
- package/dist/core/client/index.d.ts +3 -0
- package/dist/core/client/index.js +19 -0
- package/dist/core/client/useContentfulClient.d.ts +4 -0
- package/dist/core/client/useContentfulClient.js +24 -0
- package/dist/core/index.d.ts +1 -4
- package/dist/core/index.js +1 -4
- package/dist/explore/components/header/Header.d.ts +14 -0
- package/dist/explore/components/header/Header.js +33 -0
- package/dist/explore/components/header/HeaderActions.d.ts +8 -0
- package/dist/explore/components/header/HeaderActions.js +37 -0
- package/dist/explore/components/header/HeaderContainer.d.ts +2 -0
- package/dist/explore/components/header/HeaderContainer.js +15 -0
- package/dist/explore/components/header/HeaderContext.d.ts +7 -0
- package/dist/{core/api/EditorApiContext.js → explore/components/header/HeaderContext.js} +2 -2
- package/dist/explore/components/header/HeaderController.d.ts +39 -0
- package/dist/explore/components/header/HeaderController.js +100 -0
- package/dist/explore/components/header/HeaderOptions.d.ts +10 -0
- package/dist/explore/components/header/HeaderOptions.js +26 -0
- package/dist/explore/components/header/index.d.ts +5 -0
- package/dist/explore/components/header/index.js +21 -0
- package/dist/explore/components/header/useHeader.d.ts +2 -0
- package/dist/explore/components/header/useHeader.js +30 -0
- package/dist/explore/components/index.d.ts +2 -0
- package/dist/explore/components/index.js +18 -0
- package/dist/explore/components/pages/PagesExplorerLayout.d.ts +4 -0
- package/dist/explore/components/pages/PagesExplorerLayout.js +28 -0
- package/dist/explore/components/pages/index.d.ts +1 -0
- package/dist/explore/components/pages/index.js +17 -0
- package/dist/explore/index.d.ts +2 -0
- package/dist/explore/index.js +18 -0
- package/dist/explore/screens/Dashboard.d.ts +4 -0
- package/dist/explore/screens/Dashboard.js +55 -0
- package/dist/explore/screens/PageExplorer.d.ts +11 -0
- package/dist/explore/screens/PageExplorer.js +129 -0
- package/dist/explore/screens/PagesExplorer.d.ts +7 -0
- package/dist/explore/screens/PagesExplorer.js +98 -0
- package/dist/explore/screens/index.d.ts +3 -0
- package/dist/explore/screens/index.js +19 -0
- package/dist/page/bridge/BlockChangedMessage.d.ts +25 -0
- package/dist/page/bridge/BlockChangedMessage.js +18 -0
- package/dist/page/bridge/PageBridgeHub.d.ts +8 -0
- package/dist/page/bridge/PageBridgeHub.js +51 -0
- package/dist/page/bridge/index.d.ts +2 -0
- package/dist/page/bridge/index.js +18 -0
- package/dist/page/controller/{LocalPageController.d.ts → ContentfulPageController.d.ts} +15 -9
- package/dist/page/controller/ContentfulPageController.js +277 -0
- package/dist/page/controller/ContentfulPageControllerContainer.d.ts +5 -0
- package/dist/page/controller/ContentfulPageControllerContainer.js +28 -0
- package/dist/page/controller/index.d.ts +3 -3
- package/dist/page/controller/index.js +3 -3
- package/dist/page/controller/useContentfulPageController.d.ts +2 -0
- package/dist/page/controller/useContentfulPageController.js +8 -0
- package/dist/{core → page}/domain/Page.d.ts +23 -12
- package/dist/{core → page}/domain/Page.js +139 -0
- package/dist/page/domain/index.d.ts +1 -0
- package/dist/page/domain/index.js +17 -0
- package/dist/page/index.d.ts +3 -0
- package/dist/page/index.js +3 -0
- package/dist/page/repository/PageRepository.d.ts +45 -0
- package/dist/page/repository/PageRepository.js +241 -0
- package/dist/page/repository/index.d.ts +1 -0
- package/dist/page/repository/index.js +17 -0
- package/dist/page/screens/PageEditor.js +36 -12
- package/package.json +9 -5
- package/dist/collection/controller/LocalCollectionController.js +0 -200
- package/dist/collection/controller/LocalCollectionControllerContainer.d.ts +0 -8
- package/dist/collection/controller/LocalCollectionControllerContainer.js +0 -36
- package/dist/collection/controller/LocalCollectionControllerContext.d.ts +0 -7
- package/dist/collection/controller/LocalCollectionControllerContext.js +0 -6
- package/dist/collection/controller/useLocalCollectionController.d.ts +0 -2
- package/dist/collection/controller/useLocalCollectionController.js +0 -10
- package/dist/core/api/EditorApiClient.d.ts +0 -7
- package/dist/core/api/EditorApiClient.js +0 -29
- package/dist/core/api/EditorApiContainer.d.ts +0 -5
- package/dist/core/api/EditorApiContainer.js +0 -16
- package/dist/core/api/EditorApiContext.d.ts +0 -7
- package/dist/core/api/index.d.ts +0 -3
- package/dist/core/api/useEditorApi.d.ts +0 -2
- package/dist/core/api/useEditorApi.js +0 -12
- package/dist/core/bridge/AppMessage.d.ts +0 -19
- package/dist/core/bridge/AppMessage.js +0 -19
- package/dist/core/contentful/Contentful.d.ts +0 -33
- package/dist/core/contentful/Contentful.js +0 -67
- package/dist/core/contentful/ContentfulAsset.d.ts +0 -23
- package/dist/core/contentful/ContentfulAsset.js +0 -88
- package/dist/core/contentful/ContentfulCollection.d.ts +0 -29
- package/dist/core/contentful/ContentfulCollection.js +0 -97
- package/dist/core/contentful/ContentfulPage.d.ts +0 -31
- package/dist/core/contentful/ContentfulPage.js +0 -84
- package/dist/core/contentful/ContentfulRefs.d.ts +0 -16
- package/dist/core/contentful/ContentfulRefs.js +0 -152
- package/dist/core/contentful/index.d.ts +0 -5
- package/dist/core/repository/CollectionSerializer.d.ts +0 -9
- package/dist/core/repository/CollectionSerializer.js +0 -41
- package/dist/core/repository/LocalCollectionRepository.d.ts +0 -27
- package/dist/core/repository/LocalCollectionRepository.js +0 -143
- package/dist/core/repository/LocalPageRepository.d.ts +0 -16
- package/dist/core/repository/LocalPageRepository.js +0 -153
- package/dist/core/repository/PageSerializer.d.ts +0 -9
- package/dist/core/repository/PageSerializer.js +0 -47
- package/dist/core/repository/RemoteCollectionRepository.d.ts +0 -19
- package/dist/core/repository/RemoteCollectionRepository.js +0 -236
- package/dist/core/repository/RemotePageRepository.d.ts +0 -14
- package/dist/core/repository/RemotePageRepository.js +0 -113
- package/dist/core/repository/index.d.ts +0 -5
- package/dist/page/controller/LocalPageController.js +0 -190
- package/dist/page/controller/LocalPageControllerContainer.d.ts +0 -8
- package/dist/page/controller/LocalPageControllerContainer.js +0 -36
- package/dist/page/controller/LocalPageControllerContext.d.ts +0 -7
- package/dist/page/controller/LocalPageControllerContext.js +0 -6
- package/dist/page/controller/useLocalPageController.d.ts +0 -2
- package/dist/page/controller/useLocalPageController.js +0 -10
package/dist/EditorApp.js
CHANGED
|
@@ -6,25 +6,27 @@ const app_sdk_1 = require("@contentful/app-sdk");
|
|
|
6
6
|
const react_apps_toolkit_1 = require("@contentful/react-apps-toolkit");
|
|
7
7
|
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
8
8
|
const core_1 = require("./core");
|
|
9
|
+
const EditorPageRouter_1 = require("./EditorPageRouter");
|
|
9
10
|
const EntryEditor_1 = require("./EntryEditor");
|
|
10
11
|
const EntrySidebar_1 = require("./EntrySidebar");
|
|
11
12
|
// editor
|
|
12
13
|
function EditorApp() {
|
|
13
|
-
// hooks
|
|
14
|
+
// bind hooks
|
|
14
15
|
const sdk = (0, react_apps_toolkit_1.useSDK)();
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
// page
|
|
17
|
+
if (sdk.location.is(app_sdk_1.locations.LOCATION_PAGE)) {
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)(components_1.AppStateContainer, { children: (0, jsx_runtime_1.jsx)(core_1.ContentfulClientContainer, { sdk: sdk, children: (0, jsx_runtime_1.jsx)(EditorPageRouter_1.EditorPageRouter, {}) }) }));
|
|
19
|
+
}
|
|
20
|
+
// entry
|
|
21
|
+
else if (sdk.location.is(app_sdk_1.locations.LOCATION_ENTRY_EDITOR)) {
|
|
22
|
+
return ((0, jsx_runtime_1.jsx)(components_1.AppStateContainer, { children: (0, jsx_runtime_1.jsx)(core_1.AppBridgeContainer, { role: "hub", children: (0, jsx_runtime_1.jsx)(core_1.ContentfulClientContainer, { sdk: sdk, children: (0, jsx_runtime_1.jsx)(EntryEditor_1.EntryEditor, {}) }) }) }));
|
|
19
23
|
}
|
|
20
24
|
// entry sidebar
|
|
21
25
|
else if (sdk.location.is(app_sdk_1.locations.LOCATION_ENTRY_SIDEBAR)) {
|
|
22
|
-
|
|
26
|
+
return ((0, jsx_runtime_1.jsx)(components_1.AppStateContainer, { children: (0, jsx_runtime_1.jsx)(core_1.AppBridgeContainer, { role: "client", children: (0, jsx_runtime_1.jsx)(EntrySidebar_1.EntrySidebar, {}) }) }));
|
|
23
27
|
}
|
|
24
28
|
// fallback
|
|
25
29
|
else {
|
|
26
|
-
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)("div", { children: "Unsupported location" }));
|
|
27
31
|
}
|
|
28
|
-
// render
|
|
29
|
-
return ((0, jsx_runtime_1.jsx)(components_1.AppStateContainer, { children: (0, jsx_runtime_1.jsx)(core_1.AppBridgeContainer, { children: (0, jsx_runtime_1.jsx)(core_1.EditorApiContainer, { children: content }) }) }));
|
|
30
32
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function EditorPageRouter(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EditorPageRouter = EditorPageRouter;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_apps_toolkit_1 = require("@contentful/react-apps-toolkit");
|
|
6
|
+
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const react_router_1 = require("react-router");
|
|
9
|
+
const asset_1 = require("./asset");
|
|
10
|
+
const collection_1 = require("./collection");
|
|
11
|
+
const core_1 = require("./core");
|
|
12
|
+
const EditorPageRoutes_1 = require("./EditorPageRoutes");
|
|
13
|
+
const explore_1 = require("./explore");
|
|
14
|
+
const page_1 = require("./page");
|
|
15
|
+
// router
|
|
16
|
+
function EditorPageRouter() {
|
|
17
|
+
// bind props + hooks
|
|
18
|
+
const sdk = (0, react_apps_toolkit_1.useSDK)();
|
|
19
|
+
const contentfulClient = (0, core_1.useContentfulClient)();
|
|
20
|
+
const appState = (0, components_1.useAppState)();
|
|
21
|
+
// create repositories
|
|
22
|
+
const { assetRepository, collectionRepository, pageRepository } = (0, react_1.useMemo)(() => ({
|
|
23
|
+
assetRepository: new asset_1.AssetRepository({ sdk, contentfulClient }),
|
|
24
|
+
collectionRepository: new collection_1.CollectionRepository({ sdk, contentfulClient }),
|
|
25
|
+
pageRepository: new page_1.PageRepository({ sdk, contentfulClient })
|
|
26
|
+
}), [sdk, contentfulClient]);
|
|
27
|
+
// create contexts
|
|
28
|
+
const collectionsContext = (0, react_1.useMemo)(() => {
|
|
29
|
+
const collections = new components_1.Collections({ appState, repository: collectionRepository });
|
|
30
|
+
return { collections };
|
|
31
|
+
}, [appState, collectionRepository]);
|
|
32
|
+
// render
|
|
33
|
+
return ((0, jsx_runtime_1.jsx)(react_router_1.BrowserRouter, { basename: "/contentful", useTransitions: false, children: (0, jsx_runtime_1.jsx)(components_1.AssetRepositoryContext.Provider, { value: assetRepository, children: (0, jsx_runtime_1.jsx)(components_1.CollectionRepositoryContext.Provider, { value: collectionRepository, children: (0, jsx_runtime_1.jsx)(components_1.PageRepositoryContext.Provider, { value: pageRepository, children: (0, jsx_runtime_1.jsx)(components_1.CollectionsContext.Provider, { value: collectionsContext, children: (0, jsx_runtime_1.jsx)(components_1.DialogContainer, { children: (0, jsx_runtime_1.jsx)(components_1.CenterSheetContainer, { children: (0, jsx_runtime_1.jsx)(components_1.SplashContainer, { message: "Initializing...", children: (0, jsx_runtime_1.jsx)(explore_1.HeaderContainer, { children: (0, jsx_runtime_1.jsxs)("div", { className: "w-dvw h-dvh flex flex-col", children: [(0, jsx_runtime_1.jsx)(explore_1.Header, {}), (0, jsx_runtime_1.jsx)(EditorPageRoutes_1.EditorPageRoutes, {})] }) }) }) }) }) }) }) }) }) }));
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function EditorPageRoutes(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EditorPageRoutes = EditorPageRoutes;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("motion/react");
|
|
6
|
+
const react_router_1 = require("react-router");
|
|
7
|
+
const explore_1 = require("./explore");
|
|
8
|
+
const NotFound_1 = require("./NotFound");
|
|
9
|
+
// router
|
|
10
|
+
function EditorPageRoutes() {
|
|
11
|
+
// bind props + hooks
|
|
12
|
+
const location = (0, react_router_1.useLocation)();
|
|
13
|
+
console.debug('[EditorPageRoutes] render location', location);
|
|
14
|
+
// render
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)(react_1.AnimatePresence, { children: (0, jsx_runtime_1.jsxs)(react_router_1.Routes, { children: [(0, jsx_runtime_1.jsx)(react_router_1.Route, { index: true, element: (0, jsx_runtime_1.jsx)(explore_1.Dashboard, {}) }), (0, jsx_runtime_1.jsxs)(react_router_1.Route, { path: "pages/:region?", element: (0, jsx_runtime_1.jsx)(explore_1.PagesExplorerLayout, {}), children: [(0, jsx_runtime_1.jsx)(react_router_1.Route, { index: true, element: (0, jsx_runtime_1.jsx)(explore_1.PagesExplorer, {}) }), (0, jsx_runtime_1.jsx)(react_router_1.Route, { path: "page/:pageType", element: (0, jsx_runtime_1.jsx)(explore_1.PageExplorer, {}) })] }), (0, jsx_runtime_1.jsx)(react_router_1.Route, { path: "*", element: (0, jsx_runtime_1.jsx)(NotFound_1.NotFound, {}) })] }) }));
|
|
16
|
+
}
|
package/dist/EntryEditor.js
CHANGED
|
@@ -3,48 +3,49 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EntryEditor = EntryEditor;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_apps_toolkit_1 = require("@contentful/react-apps-toolkit");
|
|
6
|
+
const contentful_1 = require("@nascentdigital/funnel-cms/contentful");
|
|
7
|
+
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
6
8
|
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
7
9
|
const react_1 = require("react");
|
|
10
|
+
const asset_1 = require("./asset");
|
|
8
11
|
const collection_1 = require("./collection");
|
|
9
12
|
const core_1 = require("./core");
|
|
10
13
|
const page_1 = require("./page");
|
|
11
14
|
// entry editor
|
|
12
15
|
function EntryEditor() {
|
|
13
|
-
// hooks
|
|
16
|
+
// bind props + hooks
|
|
14
17
|
const sdk = (0, react_apps_toolkit_1.useSDK)();
|
|
18
|
+
const contentfulClient = (0, core_1.useContentfulClient)();
|
|
15
19
|
const appState = (0, components_1.useAppState)();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}, [sdk]);
|
|
24
|
-
// create remote page repository
|
|
25
|
-
const remotePageRepository = (0, react_1.useMemo)(() => {
|
|
26
|
-
return new core_1.RemotePageRepository(sdk);
|
|
27
|
-
}, [sdk]);
|
|
28
|
-
// create collections context
|
|
29
|
-
const collectionsContext = (0, react_1.useMemo)(() => {
|
|
30
|
-
const collections = new components_1.Collections({ appState, repository: remoteCollectionRepository });
|
|
31
|
-
return { collections };
|
|
32
|
-
}, [appState, remoteCollectionRepository]);
|
|
33
|
-
// create site context
|
|
34
|
-
const siteContext = (0, react_1.useMemo)(() => {
|
|
35
|
-
const site = new components_1.Site({ appState, repository: remotePageRepository, region: 'ca' });
|
|
36
|
-
return { site };
|
|
37
|
-
}, [appState, remotePageRepository]);
|
|
20
|
+
const { regionalization } = funnel_core_1.AppConfig.brandConfig();
|
|
21
|
+
let region = funnel_core_1.RegionsConfig.getDefaultRegion(regionalization);
|
|
22
|
+
// create repositories
|
|
23
|
+
const { assetRepository, collectionRepository, pageRepository } = (0, react_1.useMemo)(() => ({
|
|
24
|
+
assetRepository: new asset_1.AssetRepository({ sdk, contentfulClient }),
|
|
25
|
+
collectionRepository: new collection_1.CollectionRepository({ sdk, contentfulClient }),
|
|
26
|
+
pageRepository: new page_1.PageRepository({ sdk, contentfulClient })
|
|
27
|
+
}), [sdk, contentfulClient]);
|
|
38
28
|
// page editor
|
|
39
29
|
let content;
|
|
40
|
-
const {
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
const { entry } = sdk;
|
|
31
|
+
const { contentType: { sys: { id } } } = entry.getSys();
|
|
32
|
+
if (id === contentful_1.ContentfulPageData.contentType) {
|
|
33
|
+
region = entry.fields.region.getValue();
|
|
34
|
+
content = ((0, jsx_runtime_1.jsx)(page_1.ContentfulPageControllerContainer, { children: (0, jsx_runtime_1.jsx)(page_1.PageEditor, {}) }));
|
|
43
35
|
}
|
|
44
36
|
// collection editor
|
|
45
|
-
else if (id ===
|
|
46
|
-
content = ((0, jsx_runtime_1.jsx)(collection_1.
|
|
37
|
+
else if (id === contentful_1.ContentfulCollectionData.contentType) {
|
|
38
|
+
content = ((0, jsx_runtime_1.jsx)(collection_1.ContentfulCollectionControllerContainer, { children: (0, jsx_runtime_1.jsx)(collection_1.CollectionEditor, {}) }));
|
|
47
39
|
}
|
|
40
|
+
// create contexts
|
|
41
|
+
const siteContext = (0, react_1.useMemo)(() => {
|
|
42
|
+
const site = new components_1.Site({ appState, repository: pageRepository, region });
|
|
43
|
+
return { site };
|
|
44
|
+
}, [appState, pageRepository, region]);
|
|
45
|
+
const collectionsContext = (0, react_1.useMemo)(() => {
|
|
46
|
+
const collections = new components_1.Collections({ appState, repository: collectionRepository });
|
|
47
|
+
return { collections };
|
|
48
|
+
}, [appState, collectionRepository]);
|
|
48
49
|
// render
|
|
49
|
-
return ((0, jsx_runtime_1.jsx)(components_1.
|
|
50
|
+
return ((0, jsx_runtime_1.jsx)(components_1.AssetRepositoryContext.Provider, { value: assetRepository, children: (0, jsx_runtime_1.jsx)(components_1.CollectionRepositoryContext.Provider, { value: collectionRepository, children: (0, jsx_runtime_1.jsx)(components_1.PageRepositoryContext.Provider, { value: pageRepository, children: (0, jsx_runtime_1.jsx)(components_1.SiteContext.Provider, { value: siteContext, children: (0, jsx_runtime_1.jsx)(components_1.CollectionsContext.Provider, { value: collectionsContext, children: (0, jsx_runtime_1.jsx)(components_1.DialogContainer, { children: (0, jsx_runtime_1.jsx)(components_1.CenterSheetContainer, { children: (0, jsx_runtime_1.jsx)(components_1.SplashContainer, { message: "Initializing...", children: content }) }) }) }) }) }) }) }));
|
|
50
51
|
}
|
package/dist/EntrySidebar.js
CHANGED
|
@@ -2,23 +2,44 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EntrySidebar = EntrySidebar;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_apps_toolkit_1 = require("@contentful/react-apps-toolkit");
|
|
6
|
+
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
7
|
+
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
5
8
|
const react_1 = require("react");
|
|
6
9
|
const rxjs_1 = require("rxjs");
|
|
7
10
|
const core_1 = require("./core");
|
|
11
|
+
const page_1 = require("./page");
|
|
8
12
|
// component
|
|
9
13
|
function EntrySidebar() {
|
|
14
|
+
var _a;
|
|
10
15
|
// setup hooks
|
|
16
|
+
const id = (0, react_1.useId)();
|
|
17
|
+
const sdk = (0, react_apps_toolkit_1.useSDK)();
|
|
11
18
|
const bridge = (0, core_1.useAppBridge)();
|
|
12
|
-
const [
|
|
19
|
+
const [block, setBlock] = (0, react_1.useState)();
|
|
20
|
+
// setup ui
|
|
21
|
+
(0, react_1.useEffect)(() => {
|
|
22
|
+
var _a;
|
|
23
|
+
// setup styling for auto-resize
|
|
24
|
+
(_a = funnel_core_1.Browser.getHtml()) === null || _a === void 0 ? void 0 : _a.classList.add('Editor-widget');
|
|
25
|
+
// start auto-resize
|
|
26
|
+
sdk.window.startAutoResizer();
|
|
27
|
+
}, [sdk]);
|
|
13
28
|
// listen to bridge events
|
|
14
29
|
(0, react_1.useEffect)(() => {
|
|
15
30
|
// subscribe to block nav messages
|
|
16
31
|
const subscription = bridge.messages$
|
|
17
|
-
.pipe((0, rxjs_1.filter)(
|
|
18
|
-
.subscribe(message =>
|
|
32
|
+
.pipe((0, rxjs_1.filter)(page_1.BlockChangedMessage.filter))
|
|
33
|
+
.subscribe(message => setBlock(message.block));
|
|
19
34
|
// unsubscribe on unmount
|
|
20
35
|
return () => subscription.unsubscribe();
|
|
21
|
-
});
|
|
36
|
+
}, [bridge, sdk]);
|
|
22
37
|
// render
|
|
23
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: ["
|
|
38
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "w-full flex flex-col gap-l8 py-l8", children: [(0, jsx_runtime_1.jsxs)("h3", { children: ["Active Block: ", (_a = block === null || block === void 0 ? void 0 : block.name) !== null && _a !== void 0 ? _a : 'N/A'] }), sdk.entry.getSys().contentType.sys.id === 'page' && (block === null || block === void 0 ? void 0 : block.layout) && (block === null || block === void 0 ? void 0 : block.scope) &&
|
|
39
|
+
(0, jsx_runtime_1.jsx)(components_1.FadeIn, { children: (0, jsx_runtime_1.jsxs)("div", { className: "h-full flex flex-col gap-l6 py-l7 bg-surface1 rounded-xxl interpolate-all", children: [(0, jsx_runtime_1.jsx)(components_1.Tabs, { className: "mx-l7", variant: "highlighted", size: "sm", items: blockScopes, selectedItem: block.scope, onSelect: scope => console.debug('changing scope', scope) }), (0, jsx_runtime_1.jsx)(components_1.BlockPreview, { className: "self-center", scope: block.scope, layout: block.layout })] }) }, "block.config")] }));
|
|
24
40
|
}
|
|
41
|
+
// helpers
|
|
42
|
+
const blockScopes = [
|
|
43
|
+
{ id: 'desktop', label: 'Desktop' },
|
|
44
|
+
{ id: 'mobile', label: 'Mobile' },
|
|
45
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function NotFound(): import("react/jsx-runtime").JSX.Element;
|
package/dist/NotFound.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NotFound = NotFound;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const react_router_1 = require("react-router");
|
|
8
|
+
function NotFound() {
|
|
9
|
+
// bind hooks
|
|
10
|
+
const navigate = (0, react_router_1.useNavigate)();
|
|
11
|
+
const splash = (0, components_1.useSplash)();
|
|
12
|
+
// dismiss splash
|
|
13
|
+
(0, react_1.useEffect)(() => {
|
|
14
|
+
splash.dismiss();
|
|
15
|
+
}, [splash]);
|
|
16
|
+
// render
|
|
17
|
+
return ((0, jsx_runtime_1.jsx)(components_1.FadeIn, { className: "w-full flex-1 flex flex-col", variant: "blur", children: (0, jsx_runtime_1.jsxs)(components_1.EmptyState, { variant: "missing", size: "md", children: [(0, jsx_runtime_1.jsx)("h1", { className: "heading-md", children: "Sorry! You took a wrong turn somewhere..." }), (0, jsx_runtime_1.jsx)(components_1.Button, { variant: "primary", size: "md", onClick: () => navigate('/'), children: "Go to Dashboard" })] }) }, "notFound"));
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './repository';
|
|
@@ -14,6 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./EditorApiContainer"), exports);
|
|
19
|
-
__exportStar(require("./useEditorApi"), exports);
|
|
17
|
+
__exportStar(require("./repository"), exports);
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import { EditorAppSDK } from '@contentful/app-sdk';
|
|
1
|
+
import { EditorAppSDK, PageAppSDK } from '@contentful/app-sdk';
|
|
2
|
+
import { ContentfulContentClient } from '@nascentdigital/funnel-cms/contentful';
|
|
2
3
|
import { IAssetRepository } from '@nascentdigital/funnel-editor/components';
|
|
3
4
|
export declare class AssetRepository implements IAssetRepository {
|
|
4
|
-
readonly sdk: EditorAppSDK;
|
|
5
|
-
|
|
5
|
+
readonly sdk: EditorAppSDK | PageAppSDK;
|
|
6
|
+
readonly contentfulClient: ContentfulContentClient;
|
|
7
|
+
constructor(args: AssetRepository.ConstructorArgs);
|
|
6
8
|
search(args: IAssetRepository.Search.Args): Promise<IAssetRepository.Search.Result>;
|
|
7
9
|
get(args: IAssetRepository.Get.Args): Promise<IAssetRepository.Get.Result>;
|
|
8
10
|
update(args: IAssetRepository.Update.Args): Promise<IAssetRepository.Update.Result>;
|
|
9
11
|
uploadFile(args: IAssetRepository.UploadFile.Args): Promise<IAssetRepository.UploadFile.Result>;
|
|
10
12
|
}
|
|
13
|
+
export declare namespace AssetRepository {
|
|
14
|
+
type ConstructorArgs = {
|
|
15
|
+
sdk: EditorAppSDK | PageAppSDK;
|
|
16
|
+
contentfulClient: ContentfulContentClient;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AssetRepository = void 0;
|
|
4
4
|
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
5
|
-
const contentful_1 = require("../contentful");
|
|
6
5
|
// class
|
|
7
6
|
class AssetRepository {
|
|
8
|
-
constructor(
|
|
9
|
-
|
|
7
|
+
constructor(args) {
|
|
8
|
+
// initialize instance
|
|
9
|
+
this.sdk = args.sdk;
|
|
10
|
+
this.contentfulClient = args.contentfulClient;
|
|
10
11
|
}
|
|
11
12
|
async search(args) {
|
|
12
13
|
// TODO: implement fetching assets
|
|
@@ -25,9 +26,9 @@ class AssetRepository {
|
|
|
25
26
|
}
|
|
26
27
|
async uploadFile(args) {
|
|
27
28
|
// upload asset
|
|
28
|
-
const asset = await
|
|
29
|
+
const asset = await this.contentfulClient.uploadAsset(args);
|
|
29
30
|
// return result
|
|
30
|
-
return
|
|
31
|
+
return funnel_core_1.Schema.AssetField.LinkedValue.toData(asset);
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
exports.AssetRepository = AssetRepository;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AssetRepository';
|
|
@@ -15,7 +15,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./AssetRepository"), exports);
|
|
18
|
-
__exportStar(require("./LocalCollectionRepository"), exports);
|
|
19
|
-
__exportStar(require("./LocalPageRepository"), exports);
|
|
20
|
-
__exportStar(require("./RemoteCollectionRepository"), exports);
|
|
21
|
-
__exportStar(require("./RemotePageRepository"), exports);
|
|
@@ -1,35 +1,41 @@
|
|
|
1
|
+
import { EntrySys } from '@contentful/app-sdk';
|
|
1
2
|
import { CollectionGroup, CollectionTarget, ICollection, ICollectionController } from '@nascentdigital/funnel-editor/components';
|
|
2
3
|
import { type Observable } from 'rxjs';
|
|
3
|
-
import { Collection
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
readonly
|
|
4
|
+
import { Collection } from '../domain';
|
|
5
|
+
import { CollectionRepository } from '../repository';
|
|
6
|
+
export declare class ContentfulCollectionController implements ICollectionController {
|
|
7
|
+
readonly collectionRepository: CollectionRepository;
|
|
7
8
|
private readonly _eventBus;
|
|
8
9
|
private _state;
|
|
9
10
|
private _collectionGroup?;
|
|
10
11
|
private _collection?;
|
|
11
|
-
private
|
|
12
|
-
|
|
12
|
+
private _collectionSys?;
|
|
13
|
+
private _queuedSave?;
|
|
14
|
+
private _queuedSync?;
|
|
15
|
+
private _collectionSubscription?;
|
|
16
|
+
constructor(args: ContentfulCollectionController.ConstructorArgs);
|
|
13
17
|
get events$(): Observable<ICollectionController.Event | ICollection.Event>;
|
|
14
18
|
get state(): ICollectionController.State;
|
|
15
19
|
private set state(value);
|
|
16
20
|
get ready(): boolean;
|
|
17
|
-
get languages(): ("id" | "
|
|
21
|
+
get languages(): ("id" | "aa" | "ab" | "ae" | "af" | "ak" | "am" | "an" | "ar" | "as" | "av" | "ay" | "az" | "ba" | "be" | "bg" | "bh" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ce" | "ch" | "co" | "cr" | "cs" | "cu" | "cv" | "cy" | "da" | "de" | "dv" | "dz" | "ee" | "el" | "en" | "eo" | "es" | "et" | "eu" | "fa" | "ff" | "fi" | "fj" | "fo" | "fr" | "fy" | "ga" | "gd" | "gl" | "gn" | "gu" | "gv" | "ha" | "he" | "hi" | "ho" | "hr" | "ht" | "hu" | "hy" | "hz" | "ia" | "ie" | "ig" | "ii" | "ik" | "io" | "is" | "it" | "iu" | "ja" | "jv" | "ka" | "kg" | "ki" | "kj" | "kk" | "kl" | "km" | "kn" | "ko" | "kr" | "ks" | "ku" | "kv" | "kw" | "ky" | "la" | "lb" | "lg" | "li" | "ln" | "lo" | "lt" | "lu" | "lv" | "mg" | "mh" | "mi" | "mk" | "ml" | "mn" | "mr" | "ms" | "mt" | "my" | "na" | "nb" | "nd" | "ne" | "ng" | "nl" | "nn" | "no" | "nr" | "nv" | "ny" | "oc" | "oj" | "om" | "or" | "os" | "pa" | "pi" | "pl" | "ps" | "pt" | "qu" | "rm" | "rn" | "ro" | "ru" | "rw" | "sa" | "sc" | "sd" | "se" | "sg" | "si" | "sk" | "sl" | "sm" | "sn" | "so" | "sq" | "sr" | "ss" | "st" | "su" | "sv" | "sw" | "ta" | "te" | "tg" | "th" | "ti" | "tk" | "tl" | "tn" | "to" | "tr" | "ts" | "tt" | "tw" | "ty" | "ug" | "uk" | "ur" | "uz" | "ve" | "vi" | "vo" | "wa" | "wo" | "xh" | "yi" | "yo" | "za" | "zh" | "zu")[];
|
|
22
|
+
get collectionSys(): EntrySys | undefined;
|
|
23
|
+
private set collectionSys(value);
|
|
18
24
|
get collectionGroup(): CollectionGroup | undefined;
|
|
19
25
|
private set collectionGroup(value);
|
|
20
26
|
get collection(): Collection | undefined;
|
|
21
27
|
set collection(collection: Collection | undefined);
|
|
22
|
-
sync(
|
|
28
|
+
sync(updatedSys: EntrySys): Promise<void>;
|
|
23
29
|
load(): Promise<void>;
|
|
24
30
|
createLanguage(target: CollectionTarget): Promise<void>;
|
|
25
31
|
unpublish(): Promise<void>;
|
|
26
32
|
save(collection: Collection): Promise<void>;
|
|
27
33
|
reload(): Promise<void>;
|
|
34
|
+
private processQueues;
|
|
28
35
|
private raiseEvent;
|
|
29
36
|
}
|
|
30
|
-
export declare namespace
|
|
37
|
+
export declare namespace ContentfulCollectionController {
|
|
31
38
|
type ConstructorArgs = {
|
|
32
|
-
|
|
33
|
-
remoteRepository: RemoteCollectionRepository;
|
|
39
|
+
collectionRepository: CollectionRepository;
|
|
34
40
|
};
|
|
35
41
|
}
|