From 15a6eb5804977c64fccf6a45f6fd315fa73f93d1 Mon Sep 17 00:00:00 2001 From: Gautam Singh Date: Fri, 22 May 2020 02:51:58 +0530 Subject: [PATCH] update ui fr singleton list --- .../client/pages/Item/AddNewItem.js | 7 +++-- .../client/pages/Item/ItemTitle.js | 26 +++++++++++-------- .../app-admin-ui/client/pages/List/index.js | 7 ++++- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/packages/app-admin-ui/client/pages/Item/AddNewItem.js b/packages/app-admin-ui/client/pages/Item/AddNewItem.js index 95e16caea46..136f94ed86f 100644 --- a/packages/app-admin-ui/client/pages/Item/AddNewItem.js +++ b/packages/app-admin-ui/client/pages/Item/AddNewItem.js @@ -7,10 +7,13 @@ import { useList } from '../../providers/List'; const AddNewItem = () => { let { - list: { access }, + list: { + access, + adminConfig: { singleton = false }, + }, openCreateItemModal, } = useList(); - if (!access.create) return null; + if (!access.create || singleton) return null; const cypressId = 'item-page-create-button'; return ( diff --git a/packages/app-admin-ui/client/pages/Item/ItemTitle.js b/packages/app-admin-ui/client/pages/Item/ItemTitle.js index 81b6a06efda..0fdfdc0d940 100644 --- a/packages/app-admin-ui/client/pages/Item/ItemTitle.js +++ b/packages/app-admin-ui/client/pages/Item/ItemTitle.js @@ -29,17 +29,21 @@ export const ItemTitle = memo(function ItemTitle({ titleText }) { {titleText} -
- - {list.label} - - -
+ {!list.adminConfig.singleton ? ( +
+ + {list.label} + + +
+ ) : ( +
+ )} {itemHeaderActions ? ( itemHeaderActions() ) : ( diff --git a/packages/app-admin-ui/client/pages/List/index.js b/packages/app-admin-ui/client/pages/List/index.js index 7c1e9e64050..514571ef908 100644 --- a/packages/app-admin-ui/client/pages/List/index.js +++ b/packages/app-admin-ui/client/pages/List/index.js @@ -32,6 +32,7 @@ import Search from './Search'; import Management, { ManageToolbar } from './Management'; import { useListFilter, useListSelect, useListSort, useListUrlState } from './dataHooks'; import { captureSuspensePromises } from '@keystonejs/utils'; +import { useAdminMeta } from '../../providers/AdminMeta'; export function ListLayout(props) { const { items, itemCount, queryErrors, query } = props; @@ -225,7 +226,7 @@ const ListPage = props => { queryErrorsParsed, query, } = useList(); - + const { adminPath } = useAdminMeta(); const history = useHistory(); const location = useLocation(); @@ -278,6 +279,10 @@ const ListPage = props => { ); } + if (list.adminConfig.singleton && itemCount > 0) { + history.push(`${adminPath}/${list.path}/${items[0].id}`); + } + // Success // ------------------------------ return (