diff --git a/packages/core/src/components/ErrorBoundary.tsx b/packages/core/src/components/ErrorBoundary.tsx index 21230bc1..9e28e4ef 100644 --- a/packages/core/src/components/ErrorBoundary.tsx +++ b/packages/core/src/components/ErrorBoundary.tsx @@ -147,31 +147,72 @@ class ErrorBoundary extends Component, Error return this.props.children; } return ( -
-

{t('ui.errorBoundary.title')}

-

- {t('ui.errorBoundary.details')} - - {t('ui.errorBoundary.reportIt')} - -

-

- {t('ui.errorBoundary.privacyWarning') - .split('\n') - .map((item, index) => [ - {item}, -
, - ])} -

+
+
+

{t('ui.errorBoundary.title')}

+

+ {t('ui.errorBoundary.details')} + + {t('ui.errorBoundary.reportIt')} + +

+

+ {t('ui.errorBoundary.privacyWarning') + .split('\n') + .map((item, index) => [ + {item}, +
, + ])} +

+

-

{t('ui.errorBoundary.detailsHeading')}

-

{errorMessage}

- {backup && showBackup && } +
+

{t('ui.errorBoundary.detailsHeading')}

+

+ {errorMessage.split('\n').map((item, index) => [ + + {item} + , +
, + ])} +

+ {backup && showBackup && } +
); } diff --git a/packages/core/src/components/collections/CollectionPage.tsx b/packages/core/src/components/collections/CollectionPage.tsx index e0c2233a..a4999681 100644 --- a/packages/core/src/components/collections/CollectionPage.tsx +++ b/packages/core/src/components/collections/CollectionPage.tsx @@ -8,13 +8,30 @@ import CollectionView from './CollectionView'; import type { Collection } from '@staticcms/core/interface'; import type { FC } from 'react'; -interface CollectionViewProps { +const MultiSearchCollectionPage: FC = () => { + const { name, searchTerm, ...params } = useParams(); + const filterTerm = params['*']; + + return ( + + + + ); +}; + +interface SingleCollectionPageProps { collection: Collection; isSearchResults?: boolean; isSingleSearchResult?: boolean; } -const CollectionPage: FC = ({ +const SingleCollectionPage: FC = ({ collection, isSearchResults, isSingleSearchResult, @@ -37,4 +54,28 @@ const CollectionPage: FC = ({ ); }; +interface CollectionPageProps { + collection?: Collection; + isSearchResults?: boolean; + isSingleSearchResult?: boolean; +} + +const CollectionPage: FC = ({ + collection, + isSearchResults, + isSingleSearchResult, +}) => { + if (!collection) { + return ; + } + + return ( + + ); +}; + export default CollectionPage; diff --git a/packages/core/src/components/collections/CollectionRoute.tsx b/packages/core/src/components/collections/CollectionRoute.tsx index 0f00a10d..1beb363a 100644 --- a/packages/core/src/components/collections/CollectionRoute.tsx +++ b/packages/core/src/components/collections/CollectionRoute.tsx @@ -9,8 +9,6 @@ import { useAppSelector } from '@staticcms/core/store/hooks'; import { getDefaultPath } from '../../lib/util/collection.util'; import CollectionPage from './CollectionPage'; -import type { Collection } from '@staticcms/core/interface'; - interface CollectionRouteProps { isSearchResults?: boolean; isSingleSearchResult?: boolean; @@ -35,7 +33,7 @@ const CollectionRoute = ({ isSearchResults, isSingleSearchResult }: CollectionRo return ( diff --git a/packages/core/webpack.config.js b/packages/core/webpack.config.js index d732a1b8..11d20da6 100644 --- a/packages/core/webpack.config.js +++ b/packages/core/webpack.config.js @@ -3,6 +3,7 @@ const webpack = require('webpack'); const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const pkg = require('./package.json'); const isProduction = process.env.NODE_ENV === 'production'; const devServerPort = parseInt(process.env.STATIC_CMS_DEV_SERVER_PORT || `${8080}`); @@ -102,6 +103,9 @@ module.exports = { process: 'process/browser', Buffer: ['buffer', 'Buffer'], }), + new webpack.DefinePlugin({ + STATIC_CMS_CORE_VERSION: JSON.stringify(`${pkg.version}${isProduction ? '' : '-dev'}`), + }), ].filter(Boolean), output: { publicPath: '',