mirror of
https://github.com/Unleash/unleash.git
synced 2025-09-24 17:51:14 +02:00
* refactor: update mui packages * refactor: run mui codemods * refactor: format files after codemods * refactor: fix broken types * refactor: clean up theme * refactor: fix broken tests * refactor: replace @mui/styles with tss-react * refactor: move breakpoints into classes for tss * refactor: fix crash on missing feature description * refactor: remove void classNames * refactor: adjust styles to new defaults * refactor: remove broken rollout slider e2e test * refactor: fix duplicate e2e testid * refactor: update makeStyles after rebase * refactor: add missing snapshot after rebase * refactor: fix TableCellSortable focus styles * refactor: use 1.4 as the default line-height * refactor: hide webkit search field icons * refactor: fix select box label * refactor: make AutocompleteBox smaller * refactor: make heading smaller * refactor: fix toast close icon color * refactor: update snapshots * refactor: add missing test event awaits * refactor: fix default button line-height
120 lines
4.2 KiB
TypeScript
120 lines
4.2 KiB
TypeScript
import React, { ChangeEvent, Fragment } from 'react';
|
|
import {
|
|
FormControl,
|
|
FormControlLabel,
|
|
Grid,
|
|
InputLabel,
|
|
MenuItem,
|
|
Select,
|
|
Switch,
|
|
TextField,
|
|
SelectChangeEvent,
|
|
} from '@mui/material';
|
|
|
|
interface IAutoCreateFormProps {
|
|
data?: {
|
|
enabled: boolean;
|
|
autoCreate: boolean;
|
|
defaultRootRole?: string;
|
|
emailDomains?: string;
|
|
};
|
|
setValue: (name: string, value: string | boolean) => void;
|
|
}
|
|
|
|
export const AutoCreateForm = ({
|
|
data = { enabled: false, autoCreate: false },
|
|
setValue,
|
|
}: IAutoCreateFormProps) => {
|
|
const updateAutoCreate = () => {
|
|
setValue('autoCreate', !data.autoCreate);
|
|
};
|
|
|
|
const updateDefaultRootRole = (evt: SelectChangeEvent) => {
|
|
setValue('defaultRootRole', evt.target.value);
|
|
};
|
|
|
|
const updateField = (e: ChangeEvent<HTMLInputElement>) => {
|
|
setValue(e.target.name, e.target.value);
|
|
};
|
|
|
|
return (
|
|
<Fragment>
|
|
<Grid container spacing={3} mb={2}>
|
|
<Grid item md={5}>
|
|
<strong>Auto-create users</strong>
|
|
<p>
|
|
Enable automatic creation of new users when signing in.
|
|
</p>
|
|
</Grid>
|
|
<Grid item md={6} style={{ padding: '20px' }}>
|
|
<FormControlLabel
|
|
control={
|
|
<Switch
|
|
onChange={updateAutoCreate}
|
|
name="enabled"
|
|
checked={data.autoCreate}
|
|
disabled={!data.enabled}
|
|
/>
|
|
}
|
|
label="Auto-create users"
|
|
/>
|
|
</Grid>
|
|
</Grid>
|
|
<Grid container spacing={3} mb={2}>
|
|
<Grid item md={5}>
|
|
<strong>Default Root Role</strong>
|
|
<p>
|
|
Choose which root role the user should get when no
|
|
explicit role mapping exists.
|
|
</p>
|
|
</Grid>
|
|
<Grid item md={6}>
|
|
<FormControl style={{ minWidth: '200px' }}>
|
|
<InputLabel id="defaultRootRole-label">
|
|
Default Role
|
|
</InputLabel>
|
|
<Select
|
|
label="Default Role"
|
|
labelId="defaultRootRole-label"
|
|
id="defaultRootRole"
|
|
name="defaultRootRole"
|
|
disabled={!data.autoCreate || !data.enabled}
|
|
value={data.defaultRootRole || 'Editor'}
|
|
onChange={updateDefaultRootRole}
|
|
>
|
|
{/*consider these from API or constants. */}
|
|
<MenuItem value="Viewer">Viewer</MenuItem>
|
|
<MenuItem value="Editor">Editor</MenuItem>
|
|
<MenuItem value="Admin">Admin</MenuItem>
|
|
</Select>
|
|
</FormControl>
|
|
</Grid>
|
|
</Grid>
|
|
<Grid container spacing={3} mb={2}>
|
|
<Grid item md={5}>
|
|
<strong>Email domains</strong>
|
|
<p>
|
|
Comma separated list of email domains that should be
|
|
allowed to sign in.
|
|
</p>
|
|
</Grid>
|
|
<Grid item md={6}>
|
|
<TextField
|
|
onChange={updateField}
|
|
label="Email domains"
|
|
name="emailDomains"
|
|
disabled={!data.autoCreate || !data.enabled}
|
|
required={Boolean(data.autoCreate)}
|
|
value={data.emailDomains || ''}
|
|
placeholder="@company.com, @anotherCompany.com"
|
|
style={{ width: '400px' }}
|
|
rows={2}
|
|
variant="outlined"
|
|
size="small"
|
|
/>
|
|
</Grid>
|
|
</Grid>
|
|
</Fragment>
|
|
);
|
|
};
|