From 4795c35c680b77bd2f7fa08742d262a88f0e2b98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= <43352493+ridvanakca@users.noreply.github.com> Date: Mon, 11 Sep 2023 16:28:47 +0300 Subject: [PATCH] feat(create-role): make isCreator condition checked by default (#1276) --- .../components/ControlledCheckbox/index.tsx | 44 +++++++++-------- .../PermissionSettings.ee.tsx | 47 +++++++++---------- .../PermissionCatalogField/index.ee.tsx | 3 ++ .../web/src/pages/CreateRole/index.ee.tsx | 5 +- 4 files changed, 53 insertions(+), 46 deletions(-) diff --git a/packages/web/src/components/ControlledCheckbox/index.tsx b/packages/web/src/components/ControlledCheckbox/index.tsx index 3e16f4b8..ea8f38ac 100644 --- a/packages/web/src/components/ControlledCheckbox/index.tsx +++ b/packages/web/src/components/ControlledCheckbox/index.tsx @@ -4,9 +4,12 @@ import Checkbox, { CheckboxProps } from '@mui/material/Checkbox'; type ControlledCheckboxProps = { name: string; -} & CheckboxProps; + defaultValue?: boolean; +} & Omit; -export default function ControlledCheckbox(props: ControlledCheckboxProps): React.ReactElement { +export default function ControlledCheckbox( + props: ControlledCheckboxProps +): React.ReactElement { const { control } = useFormContext(); const { required, @@ -34,24 +37,25 @@ export default function ControlledCheckbox(props: ControlledCheckboxProps): Reac ...field }, }) => { - return ( - { - controllerOnChange(...args); - onChange?.(...args); - }} - onBlur={(...args) => { - controllerOnBlur(); - onBlur?.(...args); - }} - inputRef={ref} - /> - )}} + return ( + { + controllerOnChange(...args); + onChange?.(...args); + }} + onBlur={(...args) => { + controllerOnBlur(); + onBlur?.(...args); + }} + inputRef={ref} + /> + ); + }} /> ); } diff --git a/packages/web/src/components/PermissionCatalogField/PermissionSettings.ee.tsx b/packages/web/src/components/PermissionCatalogField/PermissionSettings.ee.tsx index 6c91defe..36e73694 100644 --- a/packages/web/src/components/PermissionCatalogField/PermissionSettings.ee.tsx +++ b/packages/web/src/components/PermissionCatalogField/PermissionSettings.ee.tsx @@ -22,18 +22,14 @@ type PermissionSettingsProps = { onClose: () => void; fieldPrefix: string; subject: string; + defaultChecked?: boolean; actions: IPermissionCatalog['actions']; conditions: IPermissionCatalog['conditions']; -} +}; export default function PermissionSettings(props: PermissionSettingsProps) { - const { - onClose, - fieldPrefix, - subject, - actions, - conditions, - } = props; + const { onClose, fieldPrefix, subject, actions, conditions, defaultChecked } = + props; const formatMessage = useFormatMessage(); const { getValues, resetField } = useFormContext(); @@ -47,7 +43,7 @@ export default function PermissionSettings(props: PermissionSettingsProps) { } onClose(); - } + }; const apply = () => { for (const action of actions) { @@ -59,13 +55,11 @@ export default function PermissionSettings(props: PermissionSettingsProps) { } onClose(); - } + }; return ( - - {formatMessage('permissionSettings.title')} - + {formatMessage('permissionSettings.title')} @@ -74,14 +68,14 @@ export default function PermissionSettings(props: PermissionSettingsProps) { - {actions.map(action => ( + {actions.map((action) => ( {action.label} @@ -97,9 +91,7 @@ export default function PermissionSettings(props: PermissionSettingsProps) { sx={{ '&:last-child td': { border: 0 } }} > - + {condition.label} @@ -109,13 +101,16 @@ export default function PermissionSettings(props: PermissionSettingsProps) { key={`${action.key}.${condition.key}`} align="center" > - + {action.subjects.includes(subject) && ( )} @@ -131,12 +126,14 @@ export default function PermissionSettings(props: PermissionSettingsProps) { - + - ) -} \ No newline at end of file + ); +} diff --git a/packages/web/src/components/PermissionCatalogField/index.ee.tsx b/packages/web/src/components/PermissionCatalogField/index.ee.tsx index 6180104a..653819c0 100644 --- a/packages/web/src/components/PermissionCatalogField/index.ee.tsx +++ b/packages/web/src/components/PermissionCatalogField/index.ee.tsx @@ -19,11 +19,13 @@ import PermissionCatalogFieldLoader from './PermissionCatalogFieldLoader'; type PermissionCatalogFieldProps = { name?: string; disabled?: boolean; + defaultChecked?: boolean; }; const PermissionCatalogField = ({ name = 'permissions', disabled = false, + defaultChecked = false, }: PermissionCatalogFieldProps) => { const { permissionCatalog, loading } = usePermissionCatalog(); const [dialogName, setDialogName] = React.useState(); @@ -98,6 +100,7 @@ const PermissionCatalogField = ({ subject={subject.key} actions={permissionCatalog.actions} conditions={permissionCatalog.conditions} + defaultChecked={defaultChecked} /> )} diff --git a/packages/web/src/pages/CreateRole/index.ee.tsx b/packages/web/src/pages/CreateRole/index.ee.tsx index e726637d..a8ddc58a 100644 --- a/packages/web/src/pages/CreateRole/index.ee.tsx +++ b/packages/web/src/pages/CreateRole/index.ee.tsx @@ -74,7 +74,10 @@ export default function CreateRole(): React.ReactElement { fullWidth /> - +