From c4cd8b1e15acbb8a85ee194056e957e7ebfe169c Mon Sep 17 00:00:00 2001 From: Christian Capeans Date: Thu, 9 Mar 2023 11:18:57 +0100 Subject: [PATCH] Add token type select to frontend --- .../FormTransferTokenContainer/index.js | 40 +++++++++++++++++++ .../pages/TransferTokens/EditView/index.js | 7 +++- .../TransferTokens/EditView/utils/schema.js | 1 + 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js index 3eb83094b6..08a16a25ff 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js @@ -5,6 +5,7 @@ import { Box, Grid, GridItem, Flex, Typography } from '@strapi/design-system'; import LifeSpanInput from '../../../../../components/Tokens/LifeSpanInput'; import TokenName from '../../../../../components/Tokens/TokenName'; import TokenDescription from '../../../../../components/Tokens/TokenDescription'; +import TokenTypeSelect from '../../../../../components/Tokens/TokenTypeSelect'; const FormTransferTokenContainer = ({ errors, @@ -16,6 +17,30 @@ const FormTransferTokenContainer = ({ }) => { const { formatMessage } = useIntl(); + const typeOptions = [ + { + value: 'push', + label: { + id: 'Settings.transferTokens.types.push', + defaultMessage: 'Push', + }, + }, + { + value: 'pull', + label: { + id: 'Settings.transferTokens.types.pull', + defaultMessage: 'Pull', + }, + }, + { + value: 'push-pull', + label: { + id: 'Settings.transferTokens.types.pull', + defaultMessage: 'Push & pull', + }, + }, + ]; + return ( + + { + onChange({ target: { name: 'type', value } }); + }} + options={typeOptions} + canEditInputs={canEditInputs} + /> + diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js index 4cf36acd59..a809d44adf 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js @@ -92,6 +92,8 @@ const TransferTokenCreateView = () => { ? parseInt(body.lifespan, 10) : null; + const permissions = body.type.split('-'); + try { const { data: { data: response }, @@ -99,13 +101,13 @@ const TransferTokenCreateView = () => { ? await post(`/admin/transfer/tokens`, { ...body, lifespan: lifespanVal, - permissions: ['push'], + permissions, }) : await put(`/admin/transfer/tokens/${id}`, { name: body.name, description: body.description, type: body.type, - permissions: ['push'], + permissions, }); unlockApp(); @@ -173,6 +175,7 @@ const TransferTokenCreateView = () => { lifespan: transferToken?.lifespan ? transferToken.lifespan.toString() : transferToken?.lifespan, + type: transferToken?.permissions.join('-'), }} enableReinitialize onSubmit={(body, actions) => handleSubmit(body, actions)} diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js index ccaded4103..61bcff35c7 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js @@ -5,6 +5,7 @@ const schema = yup.object().shape({ name: yup.string(translatedErrors.string).required(translatedErrors.required), description: yup.string().nullable(), lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required), + type: yup.string(translatedErrors.string).required(translatedErrors.required), }); export default schema;