@enonic/nextjs-adapter 3.3.0-B1 → 3.3.0-B2
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/baseMappings.d.ts +1 -0
- package/{src/baseMappings.ts → dist/baseMappings.js} +4 -14
- package/dist/baseMappings.js.map +1 -0
- package/dist/client/getClientHydratedHtml.d.ts +1 -0
- package/{src/client/getClientHydratedHtml.tsx → dist/client/getClientHydratedHtml.jsx} +3 -6
- package/dist/client/getClientHydratedHtml.jsx.map +1 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -0
- package/dist/common/ComponentRegistry.d.ts +34 -0
- package/dist/common/ComponentRegistry.js +121 -0
- package/dist/common/ComponentRegistry.js.map +1 -0
- package/dist/common/UrlProcessor.d.ts +25 -0
- package/{src/common/UrlProcessor.ts → dist/common/UrlProcessor.js} +49 -70
- package/dist/common/UrlProcessor.js.map +1 -0
- package/dist/common/constants.d.ts +51 -0
- package/{src/common/constants.ts → dist/common/constants.js} +38 -44
- package/dist/common/constants.js.map +1 -0
- package/dist/common/env.d.ts +12 -0
- package/{src/common/env.ts → dist/common/env.js} +3 -14
- package/dist/common/env.js.map +1 -0
- package/dist/guillotine/applyProcessors.d.ts +2 -0
- package/dist/guillotine/applyProcessors.js +33 -0
- package/dist/guillotine/applyProcessors.js.map +1 -0
- package/dist/guillotine/buildComponentTree.d.ts +2 -0
- package/{src/guillotine/buildComponentTree.ts → dist/guillotine/buildComponentTree.js} +13 -25
- package/dist/guillotine/buildComponentTree.js.map +1 -0
- package/dist/guillotine/buildErrorResponse.d.ts +3 -0
- package/{src/guillotine/buildErrorResponse.ts → dist/guillotine/buildErrorResponse.js} +2 -10
- package/dist/guillotine/buildErrorResponse.js.map +1 -0
- package/dist/guillotine/buildPage.d.ts +2 -0
- package/dist/guillotine/buildPage.js +10 -0
- package/dist/guillotine/buildPage.js.map +1 -0
- package/dist/guillotine/collectComponentDescriptors.d.ts +6 -0
- package/{src/guillotine/collectComponentDescriptors.ts → dist/guillotine/collectComponentDescriptors.js} +13 -26
- package/dist/guillotine/collectComponentDescriptors.js.map +1 -0
- package/dist/guillotine/combineMultipleQueries.d.ts +2 -0
- package/{src/guillotine/combineMultipleQueries.ts → dist/guillotine/combineMultipleQueries.js} +9 -23
- package/dist/guillotine/combineMultipleQueries.js.map +1 -0
- package/dist/guillotine/createMetaData.d.ts +18 -0
- package/dist/guillotine/createMetaData.js +45 -0
- package/dist/guillotine/createMetaData.js.map +1 -0
- package/dist/guillotine/fetchContent.d.ts +9 -0
- package/dist/guillotine/fetchContent.js +222 -0
- package/dist/guillotine/fetchContent.js.map +1 -0
- package/dist/guillotine/fetchContentData.d.ts +2 -0
- package/dist/guillotine/fetchContentData.js +30 -0
- package/dist/guillotine/fetchContentData.js.map +1 -0
- package/dist/guillotine/fetchContentPathsForAllLocales.d.ts +2 -0
- package/dist/guillotine/fetchContentPathsForAllLocales.js +21 -0
- package/dist/guillotine/fetchContentPathsForAllLocales.js.map +1 -0
- package/dist/guillotine/fetchContentPathsForLocale.d.ts +2 -0
- package/dist/guillotine/fetchContentPathsForLocale.js +41 -0
- package/dist/guillotine/fetchContentPathsForLocale.js.map +1 -0
- package/dist/guillotine/fetchFromApi.d.ts +3 -0
- package/dist/guillotine/fetchFromApi.js +76 -0
- package/dist/guillotine/fetchFromApi.js.map +1 -0
- package/dist/guillotine/fetchGuillotine.d.ts +3 -0
- package/dist/guillotine/fetchGuillotine.js +75 -0
- package/dist/guillotine/fetchGuillotine.js.map +1 -0
- package/dist/guillotine/fetchMetaData.d.ts +2 -0
- package/dist/guillotine/fetchMetaData.js +33 -0
- package/dist/guillotine/fetchMetaData.js.map +1 -0
- package/dist/guillotine/getCleanContentPathArrayOrThrow400.d.ts +2 -0
- package/{src/guillotine/getCleanContentPathArrayOrThrow400.ts → dist/guillotine/getCleanContentPathArrayOrThrow400.js} +5 -7
- package/dist/guillotine/getCleanContentPathArrayOrThrow400.js.map +1 -0
- package/dist/guillotine/getComponentConfig.d.ts +2 -0
- package/{src/guillotine/getComponentConfig.ts → dist/guillotine/getComponentConfig.js} +3 -5
- package/dist/guillotine/getComponentConfig.js.map +1 -0
- package/dist/guillotine/getContentAndComponentPaths.d.ts +1 -0
- package/{src/guillotine/getContentAndComponentPaths.ts → dist/guillotine/getContentAndComponentPaths.js} +6 -5
- package/dist/guillotine/getContentAndComponentPaths.js.map +1 -0
- package/dist/guillotine/getMetaData.d.ts +2 -0
- package/{src/guillotine/getMetaData.ts → dist/guillotine/getMetaData.js} +11 -18
- package/dist/guillotine/getMetaData.js.map +1 -0
- package/dist/guillotine/getParentRegion.d.ts +2 -0
- package/{src/guillotine/getParentRegion.ts → dist/guillotine/getParentRegion.js} +9 -23
- package/dist/guillotine/getParentRegion.js.map +1 -0
- package/dist/guillotine/getQueryAndVariables.d.ts +2 -0
- package/{src/guillotine/getQueryAndVariables.ts → dist/guillotine/getQueryAndVariables.js} +7 -23
- package/dist/guillotine/getQueryAndVariables.js.map +1 -0
- package/dist/guillotine/metadata/configQuery.d.ts +2 -0
- package/dist/guillotine/metadata/configQuery.js +36 -0
- package/dist/guillotine/metadata/configQuery.js.map +1 -0
- package/dist/guillotine/metadata/richTextQuery.d.ts +1 -0
- package/{src/guillotine/metadata/richTextQuery.ts → dist/guillotine/metadata/richTextQuery.js} +6 -8
- package/dist/guillotine/metadata/richTextQuery.js.map +1 -0
- package/dist/guillotine/parseComponentPath.d.ts +2 -0
- package/{src/guillotine/parseComponentPath.ts → dist/guillotine/parseComponentPath.js} +4 -8
- package/dist/guillotine/parseComponentPath.js.map +1 -0
- package/dist/guillotine/prefixFragmentCmpPath.d.ts +1 -0
- package/{src/guillotine/prefixFragmentCmpPath.ts → dist/guillotine/prefixFragmentCmpPath.js} +5 -5
- package/dist/guillotine/prefixFragmentCmpPath.js.map +1 -0
- package/dist/guillotine/processComponentConfig.d.ts +2 -0
- package/{src/guillotine/processComponentConfig.ts → dist/guillotine/processComponentConfig.js} +4 -12
- package/dist/guillotine/processComponentConfig.js.map +1 -0
- package/dist/guillotine/restrictComponentsToPath.d.ts +2 -0
- package/{src/guillotine/restrictComponentsToPath.ts → dist/guillotine/restrictComponentsToPath.js} +9 -19
- package/dist/guillotine/restrictComponentsToPath.js.map +1 -0
- package/dist/guillotine/validateData.d.ts +2 -0
- package/dist/guillotine/validateData.js +7 -0
- package/dist/guillotine/validateData.js.map +1 -0
- package/dist/guillotine/validateNotFound.d.ts +2 -0
- package/{src/guillotine/validateNotFound.ts → dist/guillotine/validateNotFound.js} +5 -9
- package/dist/guillotine/validateNotFound.js.map +1 -0
- package/dist/guillotine/validateShortcut.d.ts +2 -0
- package/{src/guillotine/validateShortcut.ts → dist/guillotine/validateShortcut.js} +12 -20
- package/dist/guillotine/validateShortcut.js.map +1 -0
- package/dist/i18n/LocaleContext.d.ts +7 -0
- package/dist/i18n/LocaleContext.jsx +50 -0
- package/dist/i18n/LocaleContext.jsx.map +1 -0
- package/dist/i18n/i18n.d.ts +12 -0
- package/dist/i18n/i18n.js +59 -0
- package/dist/i18n/i18n.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/query/Shortcut.d.ts +1 -0
- package/{src/query/Shortcut.ts → dist/query/Shortcut.js} +1 -0
- package/dist/query/Shortcut.js.map +1 -0
- package/dist/server/getServerRenderedHtml.d.ts +1 -0
- package/dist/server/getServerRenderedHtml.js +4 -0
- package/dist/server/getServerRenderedHtml.js.map +1 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.js +6 -0
- package/dist/server.js.map +1 -0
- package/{src/types/component.ts → dist/types/component.d.ts} +23 -62
- package/dist/types/component.js +2 -0
- package/dist/types/component.js.map +1 -0
- package/dist/types/componentProps.d.ts +107 -0
- package/dist/types/componentProps.js +2 -0
- package/dist/types/componentProps.js.map +1 -0
- package/dist/types/guillotine.d.ts +344 -0
- package/dist/types/guillotine.js +2 -0
- package/dist/types/guillotine.js.map +1 -0
- package/dist/types/i18n.d.ts +7 -0
- package/dist/types/i18n.js +2 -0
- package/dist/types/i18n.js.map +1 -0
- package/{src/types/index.ts → dist/types/index.d.ts} +19 -34
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/next.d.ts +6 -0
- package/dist/types/next.js +2 -0
- package/dist/types/next.js.map +1 -0
- package/dist/types/util.d.ts +3 -0
- package/dist/types/util.js +3 -0
- package/dist/types/util.js.map +1 -0
- package/dist/utils/addLineNumbers.d.ts +1 -0
- package/dist/utils/addLineNumbers.js +4 -0
- package/dist/utils/addLineNumbers.js.map +1 -0
- package/dist/utils/buildGuillotineRequestHeaders.d.ts +7 -0
- package/dist/utils/buildGuillotineRequestHeaders.js +16 -0
- package/dist/utils/buildGuillotineRequestHeaders.js.map +1 -0
- package/dist/utils/commonChars.d.ts +1 -0
- package/{src/utils/commonChars.ts → dist/utils/commonChars.js} +5 -4
- package/dist/utils/commonChars.js.map +1 -0
- package/dist/utils/enonicLog.d.ts +5 -0
- package/dist/utils/enonicLog.js +23 -0
- package/dist/utils/enonicLog.js.map +1 -0
- package/dist/utils/fixDoubleSlashes.d.ts +1 -0
- package/dist/utils/fixDoubleSlashes.js +4 -0
- package/dist/utils/fixDoubleSlashes.js.map +1 -0
- package/dist/utils/getAllLocales.d.ts +1 -0
- package/dist/utils/getAllLocales.js +5 -0
- package/dist/utils/getAllLocales.js.map +1 -0
- package/dist/utils/getContentApiUrl.d.ts +2 -0
- package/dist/utils/getContentApiUrl.js +15 -0
- package/dist/utils/getContentApiUrl.js.map +1 -0
- package/dist/utils/getLocaleMapping.d.ts +2 -0
- package/dist/utils/getLocaleMapping.js +19 -0
- package/dist/utils/getLocaleMapping.js.map +1 -0
- package/dist/utils/getLocaleMappingByLocale.d.ts +2 -0
- package/dist/utils/getLocaleMappingByLocale.js +13 -0
- package/dist/utils/getLocaleMappingByLocale.js.map +1 -0
- package/dist/utils/getLocaleMappingByProjectId.d.ts +2 -0
- package/dist/utils/getLocaleMappingByProjectId.js +16 -0
- package/dist/utils/getLocaleMappingByProjectId.js.map +1 -0
- package/dist/utils/getLocaleMappings.d.ts +2 -0
- package/{src/utils/getLocaleMappings.ts → dist/utils/getLocaleMappings.js} +8 -14
- package/dist/utils/getLocaleMappings.js.map +1 -0
- package/dist/utils/getRenderMode.d.ts +3 -0
- package/dist/utils/getRenderMode.js +8 -0
- package/dist/utils/getRenderMode.js.map +1 -0
- package/dist/utils/getRequestLocaleInfo.d.ts +6 -0
- package/{src/utils/getRequestLocaleInfo.ts → dist/utils/getRequestLocaleInfo.js} +12 -13
- package/dist/utils/getRequestLocaleInfo.js.map +1 -0
- package/dist/utils/getXpBaseUrl.d.ts +2 -0
- package/dist/utils/getXpBaseUrl.js +8 -0
- package/dist/utils/getXpBaseUrl.js.map +1 -0
- package/dist/utils/indent.d.ts +1 -0
- package/dist/utils/indent.js +5 -0
- package/dist/utils/indent.js.map +1 -0
- package/dist/utils/sanitizeGraphqlName.d.ts +1 -0
- package/{src/utils/sanitizeGraphqlName.ts → dist/utils/sanitizeGraphqlName.js} +3 -2
- package/dist/utils/sanitizeGraphqlName.js.map +1 -0
- package/dist/views/BaseComponent.d.ts +20 -0
- package/{src/views/BaseComponent.tsx → dist/views/BaseComponent.jsx} +49 -76
- package/dist/views/BaseComponent.jsx.map +1 -0
- package/dist/views/BaseContent.d.ts +3 -0
- package/dist/views/BaseContent.jsx +38 -0
- package/dist/views/BaseContent.jsx.map +1 -0
- package/dist/views/BaseLayout.d.ts +3 -0
- package/dist/views/BaseLayout.jsx +24 -0
- package/dist/views/BaseLayout.jsx.map +1 -0
- package/dist/views/BaseMacro.d.ts +6 -0
- package/{src/views/BaseMacro.tsx → dist/views/BaseMacro.jsx} +37 -42
- package/dist/views/BaseMacro.jsx.map +1 -0
- package/dist/views/BasePage.d.ts +3 -0
- package/dist/views/BasePage.jsx +34 -0
- package/dist/views/BasePage.jsx.map +1 -0
- package/dist/views/BasePart.d.ts +3 -0
- package/dist/views/BasePart.jsx +24 -0
- package/dist/views/BasePart.jsx.map +1 -0
- package/dist/views/Empty.d.ts +2 -0
- package/{src/views/Empty.tsx → dist/views/Empty.jsx} +1 -2
- package/dist/views/Empty.jsx.map +1 -0
- package/dist/views/Fragment.d.ts +3 -0
- package/dist/views/Fragment.jsx +30 -0
- package/dist/views/Fragment.jsx.map +1 -0
- package/dist/views/MainView.d.ts +3 -0
- package/dist/views/MainView.jsx +14 -0
- package/dist/views/MainView.jsx.map +1 -0
- package/dist/views/PropsView.d.ts +2 -0
- package/dist/views/PropsView.jsx +21 -0
- package/dist/views/PropsView.jsx.map +1 -0
- package/dist/views/Region.d.ts +6 -0
- package/{src/views/Region.tsx → dist/views/Region.jsx} +17 -41
- package/dist/views/Region.jsx.map +1 -0
- package/dist/views/RichTextView.d.ts +3 -0
- package/dist/views/RichTextView.jsx +65 -0
- package/dist/views/RichTextView.jsx.map +1 -0
- package/dist/views/SingleComponent.d.ts +4 -0
- package/dist/views/SingleComponent.jsx +10 -0
- package/dist/views/SingleComponent.jsx.map +1 -0
- package/dist/views/StaticContent.d.ts +10 -0
- package/dist/views/StaticContent.jsx +37 -0
- package/dist/views/StaticContent.jsx.map +1 -0
- package/dist/views/Text.d.ts +8 -0
- package/dist/views/Text.jsx +4 -0
- package/dist/views/Text.jsx.map +1 -0
- package/dist/views/macros/DefaultMacro.d.ts +3 -0
- package/dist/views/macros/DefaultMacro.jsx +4 -0
- package/dist/views/macros/DefaultMacro.jsx.map +1 -0
- package/dist/views/macros/DisableMacro.d.ts +3 -0
- package/dist/views/macros/DisableMacro.jsx +3 -0
- package/dist/views/macros/DisableMacro.jsx.map +1 -0
- package/package.json +19 -31
- package/src/client.ts +0 -2
- package/src/common/ComponentRegistry.ts +0 -159
- package/src/guillotine/applyProcessors.ts +0 -34
- package/src/guillotine/buildPage.ts +0 -15
- package/src/guillotine/createMetaData.ts +0 -72
- package/src/guillotine/fetchContent.ts +0 -240
- package/src/guillotine/fetchContentData.ts +0 -31
- package/src/guillotine/fetchContentPathsForAllLocales.ts +0 -21
- package/src/guillotine/fetchContentPathsForLocale.ts +0 -43
- package/src/guillotine/fetchFromApi.ts +0 -76
- package/src/guillotine/fetchGuillotine.ts +0 -76
- package/src/guillotine/fetchMetaData.ts +0 -31
- package/src/guillotine/metadata/configQuery.ts +0 -46
- package/src/guillotine/validateData.ts +0 -11
- package/src/i18n/LocaleContext.tsx +0 -59
- package/src/i18n/i18n.ts +0 -57
- package/src/index.ts +0 -42
- package/src/server/getServerRenderedHtml.ts +0 -3
- package/src/server.ts +0 -5
- package/src/types/componentProps.ts +0 -143
- package/src/types/guillotine.ts +0 -428
- package/src/types/i18n.ts +0 -8
- package/src/types/next.ts +0 -7
- package/src/types/util.ts +0 -5
- package/src/utils/addLineNumbers.ts +0 -3
- package/src/utils/buildGuillotineRequestHeaders.ts +0 -29
- package/src/utils/enonicLog.ts +0 -28
- package/src/utils/fixDoubleSlashes.ts +0 -3
- package/src/utils/getAllLocales.ts +0 -6
- package/src/utils/getContentApiUrl.ts +0 -20
- package/src/utils/getLocaleMapping.ts +0 -24
- package/src/utils/getLocaleMappingByLocale.ts +0 -19
- package/src/utils/getLocaleMappingByProjectId.ts +0 -21
- package/src/utils/getRenderMode.ts +0 -11
- package/src/utils/getXpBaseUrl.ts +0 -12
- package/src/utils/indent.ts +0 -4
- package/src/views/BaseContent.tsx +0 -47
- package/src/views/BaseLayout.tsx +0 -33
- package/src/views/BasePage.tsx +0 -42
- package/src/views/BasePart.tsx +0 -34
- package/src/views/Fragment.tsx +0 -41
- package/src/views/MainView.tsx +0 -22
- package/src/views/PropsView.tsx +0 -38
- package/src/views/RichTextView.tsx +0 -106
- package/src/views/SingleComponent.tsx +0 -19
- package/src/views/StaticContent.tsx +0 -39
- package/src/views/Text.tsx +0 -19
- package/src/views/macros/DefaultMacro.tsx +0 -9
- package/src/views/macros/DisableMacro.tsx +0 -8
package/src/views/BaseLayout.tsx
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type {BaseLayoutProps} from '../types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {XP_COMPONENT_TYPE} from '../common/constants';
|
|
6
|
-
import {ComponentRegistry} from '../common/ComponentRegistry';
|
|
7
|
-
import {MissingComponent, shouldShowMissingView} from './BaseComponent';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const BaseLayout = (props: BaseLayoutProps) => {
|
|
11
|
-
|
|
12
|
-
const {component, common, regions, meta, path} = props;
|
|
13
|
-
let layoutSelection;
|
|
14
|
-
if (component) {
|
|
15
|
-
layoutSelection = ComponentRegistry.getLayout(component.descriptor);
|
|
16
|
-
}
|
|
17
|
-
const SelectedLayoutView = layoutSelection?.view;
|
|
18
|
-
if (SelectedLayoutView) {
|
|
19
|
-
return <SelectedLayoutView layout={{descriptor: component?.descriptor, regions: regions || {}, config: component?.config}}
|
|
20
|
-
path={path}
|
|
21
|
-
common={common}
|
|
22
|
-
meta={meta}/>;
|
|
23
|
-
} else if (component?.descriptor) {
|
|
24
|
-
// empty descriptor usually means uninitialized layout
|
|
25
|
-
console.warn(`BaseLayout: can not render layout '${component?.descriptor}': no next view or catch-all defined`);
|
|
26
|
-
if (shouldShowMissingView(meta)) {
|
|
27
|
-
return <MissingComponent type={XP_COMPONENT_TYPE.LAYOUT} descriptor={component.descriptor}/>;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return null;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export default BaseLayout;
|
package/src/views/BasePage.tsx
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type {BasePageProps} from '../types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {ComponentRegistry} from '../common/ComponentRegistry';
|
|
6
|
-
import {XP_COMPONENT_TYPE} from '../common/constants';
|
|
7
|
-
import {ErrorComponent, MissingComponent, shouldShowErrorView, shouldShowMissingView} from './BaseComponent';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const BasePage = (props: BasePageProps) => {
|
|
11
|
-
const {component, data, common, error, meta, path} = props;
|
|
12
|
-
const desc = component?.descriptor;
|
|
13
|
-
if (error) {
|
|
14
|
-
console.warn(`BasePage: '${desc}' error: ${error}`);
|
|
15
|
-
if (shouldShowErrorView(meta)) {
|
|
16
|
-
return <ErrorComponent reason={error} descriptor={desc} type={XP_COMPONENT_TYPE.PAGE}/>;
|
|
17
|
-
} else {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
let pageDef;
|
|
22
|
-
if (desc) {
|
|
23
|
-
pageDef = ComponentRegistry.getPage(desc);
|
|
24
|
-
}
|
|
25
|
-
const PageView = pageDef?.view;
|
|
26
|
-
if (PageView) {
|
|
27
|
-
return <PageView page={component}
|
|
28
|
-
path={path}
|
|
29
|
-
data={data}
|
|
30
|
-
common={common}
|
|
31
|
-
meta={meta}/>;
|
|
32
|
-
} else if (component?.descriptor) {
|
|
33
|
-
// empty descriptor usually means uninitialized page
|
|
34
|
-
console.warn(`BasePage: can not render page '${desc}': no next view or catch-all defined`);
|
|
35
|
-
if (shouldShowMissingView(meta)) {
|
|
36
|
-
return <MissingComponent type={XP_COMPONENT_TYPE.PAGE} descriptor={component.descriptor}/>;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export default BasePage;
|
package/src/views/BasePart.tsx
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type {BasePartProps} from '../types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {ComponentRegistry} from '../common/ComponentRegistry';
|
|
6
|
-
import {XP_COMPONENT_TYPE} from '../common/constants';
|
|
7
|
-
import {MissingComponent, shouldShowMissingView} from './BaseComponent';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const BasePart = (props: BasePartProps) => {
|
|
11
|
-
const {component, data, common, meta, path} = props;
|
|
12
|
-
|
|
13
|
-
let partSelection;
|
|
14
|
-
if (component) {
|
|
15
|
-
partSelection = ComponentRegistry.getPart(component.descriptor);
|
|
16
|
-
}
|
|
17
|
-
const SelectedPartView = partSelection?.view;
|
|
18
|
-
if (SelectedPartView) {
|
|
19
|
-
return <SelectedPartView part={component}
|
|
20
|
-
path={path}
|
|
21
|
-
data={data}
|
|
22
|
-
common={common}
|
|
23
|
-
meta={meta}/>;
|
|
24
|
-
} else if (component?.descriptor) {
|
|
25
|
-
// empty descriptor usually means uninitialized part
|
|
26
|
-
console.warn(`BasePart: can not render part '${component.descriptor}': no next view or catch-all defined`);
|
|
27
|
-
if (shouldShowMissingView(meta)) {
|
|
28
|
-
return <MissingComponent type={XP_COMPONENT_TYPE.PART} descriptor={component.descriptor}/>;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return null;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export default BasePart;
|
package/src/views/Fragment.tsx
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type {FragmentProps, PageComponent} from '../types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {FRAGMENT_DEFAULT_REGION_NAME, XP_COMPONENT_TYPE} from '../common/constants';
|
|
6
|
-
import BaseComponent, {MissingComponent, shouldShowMissingView} from './BaseComponent';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const FragmentView = (props: FragmentProps) => {
|
|
10
|
-
const {component, page} = props;
|
|
11
|
-
const comps: PageComponent[] = [];
|
|
12
|
-
if (page) {
|
|
13
|
-
// rendering whole page
|
|
14
|
-
const regions = page.regions || {};
|
|
15
|
-
const regionComps = regions[FRAGMENT_DEFAULT_REGION_NAME]?.components;
|
|
16
|
-
if (regionComps) {
|
|
17
|
-
comps.push(...regionComps);
|
|
18
|
-
}
|
|
19
|
-
} else if (component?.fragment) {
|
|
20
|
-
// rendering a part of a page
|
|
21
|
-
comps.push(...component.fragment.components);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (!comps.length && shouldShowMissingView(props.meta)) {
|
|
25
|
-
return <MissingComponent type={XP_COMPONENT_TYPE.FRAGMENT} descriptor={page?.descriptor || component?.id}/>;
|
|
26
|
-
} else {
|
|
27
|
-
const {common, meta} = props;
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<>
|
|
31
|
-
{
|
|
32
|
-
comps.map((comp: PageComponent, i: number) => (
|
|
33
|
-
<BaseComponent key={i} component={comp} common={common} meta={meta}/>
|
|
34
|
-
))
|
|
35
|
-
}
|
|
36
|
-
</>
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export default FragmentView;
|
package/src/views/MainView.tsx
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type {FetchContentResult} from '../types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {XP_REQUEST_TYPE} from '../common/constants';
|
|
6
|
-
import SingleComponent from './SingleComponent';
|
|
7
|
-
import BaseContent from './BaseContent';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const _MainView = (props: FetchContentResult) => {
|
|
11
|
-
const {meta} = props;
|
|
12
|
-
|
|
13
|
-
// Single-component render:
|
|
14
|
-
if (meta?.requestType === XP_REQUEST_TYPE.COMPONENT) {
|
|
15
|
-
return <SingleComponent {...props} />;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// meta.requestType="type", and hence content-type based, is standard view for now.
|
|
19
|
-
return <BaseContent {...props} />;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export default _MainView;
|
package/src/views/PropsView.tsx
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
interface Props {
|
|
4
|
-
label: string
|
|
5
|
-
data: any
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const PropsView = (props: any) => {
|
|
9
|
-
return (
|
|
10
|
-
<div className='debug'
|
|
11
|
-
style={{margin: '10px', padding: '10px', border: '2px solid lightgrey'}}>
|
|
12
|
-
<DataDump label='Page' data={props.page}/>
|
|
13
|
-
<DataDump label='Part' data={props.part}/>
|
|
14
|
-
<DataDump label='Layout' data={props.layout}/>
|
|
15
|
-
<DataDump label='Data' data={props.data}/>
|
|
16
|
-
<DataDump label='Common' data={props.common}/>
|
|
17
|
-
</div>
|
|
18
|
-
);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export default PropsView;
|
|
22
|
-
|
|
23
|
-
const DataDump = ({label, data}: Props) => (
|
|
24
|
-
(data && (
|
|
25
|
-
<>
|
|
26
|
-
{label && (
|
|
27
|
-
<h5 style={{marginTop: '0', marginBottom: '0'}}>{label}:</h5>
|
|
28
|
-
)}
|
|
29
|
-
<pre style={{
|
|
30
|
-
fontSize: '.8em',
|
|
31
|
-
width: '100%',
|
|
32
|
-
whiteSpace: 'pre-wrap',
|
|
33
|
-
wordWrap: 'break-word'
|
|
34
|
-
}}>{JSON.stringify(data, null, 2)}</pre>
|
|
35
|
-
</>
|
|
36
|
-
)
|
|
37
|
-
) || null
|
|
38
|
-
);
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import type {MetaData, RichTextViewProps, Replacer as NextReplacer, RichTextData, MacroData} from '../types';
|
|
2
|
-
|
|
3
|
-
import {getUrl, UrlProcessor} from '../common/UrlProcessor';
|
|
4
|
-
import BaseMacro from './BaseMacro';
|
|
5
|
-
import Link from 'next/link';
|
|
6
|
-
import {useMemo} from 'react';
|
|
7
|
-
import type {
|
|
8
|
-
MacroComponentParams,
|
|
9
|
-
LinkComponentParams,
|
|
10
|
-
ImageComponentParams,
|
|
11
|
-
Replacer as ComponentsReplacer,
|
|
12
|
-
ExtendedRichTextData,
|
|
13
|
-
ComponentDataAndProps,
|
|
14
|
-
MacroComponentData
|
|
15
|
-
} from '@enonic/react-components';
|
|
16
|
-
import {RichText, RichTextMetaData} from '@enonic/react-components';
|
|
17
|
-
import type {DOMNode} from 'html-react-parser';
|
|
18
|
-
import {LiteralUnion, TextComponent} from '@enonic-types/core';
|
|
19
|
-
|
|
20
|
-
interface ExtraRichTextProps {
|
|
21
|
-
nextMeta: MetaData;
|
|
22
|
-
renderInEditMode?: boolean;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const RichTextView = (props: RichTextViewProps) => {
|
|
26
|
-
const component: TextComponent = useMemo(() => ({
|
|
27
|
-
type: 'text',
|
|
28
|
-
path: props.meta.path,
|
|
29
|
-
text: props.data.processedHtml
|
|
30
|
-
}), [props.meta.path, props.data.processedHtml]);
|
|
31
|
-
|
|
32
|
-
return <RichText<ExtraRichTextProps>
|
|
33
|
-
data={wrapData(props.data)}
|
|
34
|
-
meta={toRichTextMetaData(props.meta)}
|
|
35
|
-
nextMeta={props.meta}
|
|
36
|
-
component={component}
|
|
37
|
-
className={props.className}
|
|
38
|
-
tag={props.tag}
|
|
39
|
-
replacer={wrapReplacer(props.customReplacer, props.meta, props.renderMacroInEditMode)}
|
|
40
|
-
renderInEditMode={props.renderMacroInEditMode ?? true}
|
|
41
|
-
Macro={MacroAdapter}
|
|
42
|
-
Link={LinkAdapter}
|
|
43
|
-
Image={ImageAdapter}
|
|
44
|
-
/>;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
function wrapReplacer(nextReplacer: NextReplacer | undefined, meta: MetaData,
|
|
48
|
-
renderMacroInEditMode: boolean): ComponentsReplacer<ExtraRichTextProps> {
|
|
49
|
-
if (!nextReplacer) {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
return ({el, data}: { el: DOMNode, data: RichTextData, mode?: LiteralUnion<RequestMode> }) => {
|
|
53
|
-
return nextReplacer(el, data, meta, renderMacroInEditMode);
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function wrapData(data: RichTextData): ExtendedRichTextData {
|
|
58
|
-
if (!data.macros || !data.macros.length) {
|
|
59
|
-
return data as ExtendedRichTextData;
|
|
60
|
-
}
|
|
61
|
-
const macroComponents = data.macros.map(macroData => {
|
|
62
|
-
return {
|
|
63
|
-
component: {
|
|
64
|
-
type: 'macro',
|
|
65
|
-
ref: macroData.ref,
|
|
66
|
-
name: macroData.name,
|
|
67
|
-
descriptor: macroData.descriptor
|
|
68
|
-
},
|
|
69
|
-
data: {
|
|
70
|
-
name: macroData.name,
|
|
71
|
-
descriptor: macroData.descriptor,
|
|
72
|
-
config: macroData.config || {}
|
|
73
|
-
}
|
|
74
|
-
} as ComponentDataAndProps<MacroComponentData>;
|
|
75
|
-
});
|
|
76
|
-
return {
|
|
77
|
-
...data,
|
|
78
|
-
macroComponents
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function MacroAdapter(props: MacroComponentParams<ExtraRichTextProps>) {
|
|
83
|
-
const {children, component, data, common, meta, nextMeta, renderInEditMode} = props;
|
|
84
|
-
|
|
85
|
-
return <BaseMacro data={data as Omit<MacroData, 'ref'>} meta={nextMeta} renderInEditMode={renderInEditMode}>{children}</BaseMacro>;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function LinkAdapter(props: LinkComponentParams<ExtraRichTextProps>) {
|
|
89
|
-
return <Link href={getUrl(props.href, props.nextMeta)}>{props.children}</Link>;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function ImageAdapter(props: ImageComponentParams<ExtraRichTextProps>) {
|
|
93
|
-
const srcSet = props.srcSet?.length ? UrlProcessor.processSrcSet(props.srcSet, props.nextMeta) : undefined;
|
|
94
|
-
return <img src={getUrl(props.src, props.nextMeta)} style={props.style} alt={props.alt} sizes={props.sizes} srcSet={srcSet}/>;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function toRichTextMetaData(meta: MetaData): RichTextMetaData {
|
|
98
|
-
return {
|
|
99
|
-
type: meta.type,
|
|
100
|
-
mode: meta.renderMode,
|
|
101
|
-
path: meta.path,
|
|
102
|
-
id: meta.id
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
export default RichTextView;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
/** Render only one component as a result of a request from XP-side .../_/component/... during edit refresh. */
|
|
3
|
-
import type {FetchContentResult} from '../types';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import BaseComponent from './BaseComponent';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const SingleComponent = ({meta, common}: FetchContentResult) => {
|
|
10
|
-
|
|
11
|
-
if (!meta?.requestedComponent) {
|
|
12
|
-
// TODO: Handle missing target region (Throw a 404, "component path not found"?)
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return <BaseComponent component={meta.requestedComponent} common={common} meta={meta}/>;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export default SingleComponent;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import {StaticContentProps} from '../types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {createElement, createRef} from 'react';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
function useStaticContent(ref, isServer) {
|
|
8
|
-
if (isServer) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
if (ref?.current?.innerHTML === '') {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export default function StaticContent({children, element = 'div', condition = true, ...props}: StaticContentProps) {
|
|
21
|
-
const isServer = typeof window === 'undefined';
|
|
22
|
-
const ref = createRef();
|
|
23
|
-
const isStatic = useStaticContent(ref, isServer);
|
|
24
|
-
|
|
25
|
-
// avoid re-render on the client
|
|
26
|
-
if (isStatic && condition) {
|
|
27
|
-
return createElement(element, {
|
|
28
|
-
...props,
|
|
29
|
-
ref,
|
|
30
|
-
suppressHydrationWarning: true,
|
|
31
|
-
dangerouslySetInnerHTML: {__html: ''}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// just render if:
|
|
36
|
-
// - condition is false
|
|
37
|
-
// - we're in the server or a spa navigation
|
|
38
|
-
return createElement(element, props, ...[].concat(children));
|
|
39
|
-
}
|
package/src/views/Text.tsx
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type {MetaData, TextData} from '../types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import RichTextView from './RichTextView';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
meta: MetaData
|
|
10
|
-
component: TextData
|
|
11
|
-
path: string
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const DefaultTextView = ({component, meta, path}: Props) => (
|
|
16
|
-
<RichTextView data={component.value} meta={meta} renderMacroInEditMode={false}/>
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
export default DefaultTextView;
|