{"version":3,"file":"index.mjs","sources":["../../../../admin/src/pages/AdvancedSettings/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, useNotifyAT } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n  useAPIErrorHandler,\n  Page,\n  Form,\n  InputRenderer,\n  useNotification,\n  useFetchClient,\n  useRBAC,\n  Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport layout from './utils/layout';\nimport schema from './utils/schema';\n\nconst ProtectedAdvancedSettingsPage = () => (\n  <Page.Protect permissions={PERMISSIONS.readAdvancedSettings}>\n    <AdvancedSettingsPage />\n  </Page.Protect>\n);\n\nconst AdvancedSettingsPage = () => {\n  const { formatMessage } = useIntl();\n  const { toggleNotification } = useNotification();\n  const { notifyStatus } = useNotifyAT();\n  const queryClient = useQueryClient();\n  const { get, put } = useFetchClient();\n  const { formatAPIError } = useAPIErrorHandler();\n\n  const {\n    isLoading: isLoadingForPermissions,\n    allowedActions: { canUpdate },\n  } = useRBAC({ update: PERMISSIONS.updateAdvancedSettings });\n\n  const { isLoading: isLoadingData, data } = useQuery(\n    ['users-permissions', 'advanced'],\n    async () => {\n      const { data } = await get('/users-permissions/advanced');\n\n      return data;\n    },\n    {\n      onSuccess() {\n        notifyStatus(\n          formatMessage({\n            id: getTrad('Form.advancedSettings.data.loaded'),\n            defaultMessage: 'Advanced settings data has been loaded',\n          })\n        );\n      },\n      onError() {\n        toggleNotification({\n          type: 'danger',\n          message: formatMessage({\n            id: getTrad('notification.error'),\n            defaultMessage: 'An error occured',\n          }),\n        });\n      },\n    }\n  );\n\n  const isLoading = isLoadingForPermissions || isLoadingData;\n\n  const submitMutation = useMutation((body) => put('/users-permissions/advanced', body), {\n    async onSuccess() {\n      await queryClient.invalidateQueries(['users-permissions', 'advanced']);\n\n      toggleNotification({\n        type: 'success',\n        message: formatMessage({\n          id: getTrad('notification.success.saved'),\n          defaultMessage: 'Saved',\n        }),\n      });\n    },\n    onError(error) {\n      toggleNotification({\n        type: 'danger',\n        message: formatAPIError(error),\n      });\n    },\n    refetchActive: true,\n  });\n\n  const { isLoading: isSubmittingForm } = submitMutation;\n\n  const handleSubmit = async (body) => {\n    submitMutation.mutate({\n      ...body,\n      email_confirmation_redirection: body.email_confirmation\n        ? body.email_confirmation_redirection\n        : '',\n    });\n  };\n\n  if (isLoading) {\n    return <Page.Loading />;\n  }\n\n  return (\n    <Page.Main aria-busy={isSubmittingForm}>\n      <Page.Title>\n        {formatMessage(\n          { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n          {\n            name: formatMessage({\n              id: getTrad('HeaderNav.link.advancedSettings'),\n              defaultMessage: 'Advanced Settings',\n            }),\n          }\n        )}\n      </Page.Title>\n      <Form onSubmit={handleSubmit} initialValues={data.settings} validationSchema={schema}>\n        {({ values, isSubmitting, modified }) => {\n          return (\n            <>\n              <Layouts.Header\n                title={formatMessage({\n                  id: getTrad('HeaderNav.link.advancedSettings'),\n                  defaultMessage: 'Advanced Settings',\n                })}\n                primaryAction={\n                  <Button\n                    loading={isSubmitting}\n                    type=\"submit\"\n                    disabled={!modified || !canUpdate}\n                    startIcon={<Check />}\n                    size=\"S\"\n                    fullWidth\n                  >\n                    {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n                  </Button>\n                }\n              />\n              <Layouts.Content>\n                <Box\n                  background=\"neutral0\"\n                  hasRadius\n                  shadow=\"filterShadow\"\n                  paddingTop={6}\n                  paddingBottom={6}\n                  paddingLeft={7}\n                  paddingRight={7}\n                >\n                  <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n                    <Typography variant=\"delta\" tag=\"h2\">\n                      {formatMessage({\n                        id: 'global.settings',\n                        defaultMessage: 'Settings',\n                      })}\n                    </Typography>\n                    <Grid.Root gap={6}>\n                      {[\n                        {\n                          label: {\n                            id: getTrad('EditForm.inputSelect.label.role'),\n                            defaultMessage: 'Default role for authenticated users',\n                          },\n                          hint: {\n                            id: getTrad('EditForm.inputSelect.description.role'),\n                            defaultMessage:\n                              'It will attach the new authenticated user to the selected role.',\n                          },\n                          options: data.roles.map((role) => ({\n                            label: role.name,\n                            value: role.type,\n                          })),\n                          name: 'default_role',\n                          size: 6,\n                          type: 'enumeration',\n                        },\n                        ...layout,\n                      ].map(({ size, ...field }) => (\n                        <Grid.Item\n                          key={field.name}\n                          col={size}\n                          direction=\"column\"\n                          alignItems=\"stretch\"\n                        >\n                          <InputRenderer\n                            {...field}\n                            disabled={\n                              field.name === 'email_confirmation_redirection' &&\n                              values.email_confirmation === false\n                            }\n                            label={formatMessage(field.label)}\n                            hint={field.hint ? formatMessage(field.hint) : undefined}\n                            placeholder={\n                              field.placeholder ? formatMessage(field.placeholder) : undefined\n                            }\n                          />\n                        </Grid.Item>\n                      ))}\n                    </Grid.Root>\n                  </Flex>\n                </Box>\n              </Layouts.Content>\n            </>\n          );\n        }}\n      </Form>\n    </Page.Main>\n  );\n};\n\nexport { ProtectedAdvancedSettingsPage, AdvancedSettingsPage };\n"],"names":["ProtectedAdvancedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","readAdvancedSettings","AdvancedSettingsPage","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","queryClient","useQueryClient","get","put","useFetchClient","formatAPIError","useAPIErrorHandler","isLoading","isLoadingForPermissions","allowedActions","canUpdate","useRBAC","update","updateAdvancedSettings","isLoadingData","data","useQuery","onSuccess","id","getTrad","defaultMessage","onError","type","message","submitMutation","useMutation","body","invalidateQueries","error","refetchActive","isSubmittingForm","handleSubmit","mutate","email_confirmation_redirection","email_confirmation","Loading","_jsxs","Main","aria-busy","Title","name","Form","onSubmit","initialValues","settings","validationSchema","schema","values","isSubmitting","modified","_Fragment","Layouts","Header","title","primaryAction","Button","loading","disabled","startIcon","Check","size","fullWidth","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","label","hint","options","roles","map","role","value","layout","field","Item","col","InputRenderer","undefined","placeholder"],"mappings":"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"}