mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	fix: update buttons order in new screens
This commit is contained in:
		
							parent
							
								
									9bb63d47ef
								
							
						
					
					
						commit
						b59c68c59b
					
				@ -29,7 +29,7 @@ export const useStyles = makeStyles(theme => ({
 | 
				
			|||||||
        justifyContent: 'flex-end',
 | 
					        justifyContent: 'flex-end',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    cancelButton: {
 | 
					    cancelButton: {
 | 
				
			||||||
        marginRight: '1.5rem',
 | 
					        marginLeft: '1.5rem',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    inputDescription: {
 | 
					    inputDescription: {
 | 
				
			||||||
        marginBottom: '0.5rem',
 | 
					        marginBottom: '0.5rem',
 | 
				
			||||||
 | 
				
			|||||||
@ -122,10 +122,10 @@ const ApiTokenForm: React.FC<IApiTokenFormProps> = ({
 | 
				
			|||||||
                />
 | 
					                />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div className={styles.buttonContainer}>
 | 
					            <div className={styles.buttonContainer}>
 | 
				
			||||||
 | 
					                {children}
 | 
				
			||||||
                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
					                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
				
			||||||
                    Cancel
 | 
					                    Cancel
 | 
				
			||||||
                </Button>
 | 
					                </Button>
 | 
				
			||||||
                {children}
 | 
					 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
				
			|||||||
@ -97,7 +97,6 @@ const CreateApiToken = () => {
 | 
				
			|||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <PermissionButton
 | 
					                <PermissionButton
 | 
				
			||||||
                    onClick={handleSubmit}
 | 
					 | 
				
			||||||
                    permission={ADMIN}
 | 
					                    permission={ADMIN}
 | 
				
			||||||
                    type="submit"
 | 
					                    type="submit"
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,8 @@ import ProjectRoleForm from '../ProjectRoleForm/ProjectRoleForm';
 | 
				
			|||||||
import useProjectRoleForm from '../hooks/useProjectRoleForm';
 | 
					import useProjectRoleForm from '../hooks/useProjectRoleForm';
 | 
				
			||||||
import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
 | 
					import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
 | 
				
			||||||
import useToast from '../../../../hooks/useToast';
 | 
					import useToast from '../../../../hooks/useToast';
 | 
				
			||||||
 | 
					import PermissionButton from '../../../common/PermissionButton/PermissionButton';
 | 
				
			||||||
 | 
					import { ADMIN } from '../../../providers/AccessProvider/permissions';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const CreateProjectRole = () => {
 | 
					const CreateProjectRole = () => {
 | 
				
			||||||
    /* @ts-ignore */
 | 
					    /* @ts-ignore */
 | 
				
			||||||
@ -89,11 +91,15 @@ const CreateProjectRole = () => {
 | 
				
			|||||||
                handlePermissionChange={handlePermissionChange}
 | 
					                handlePermissionChange={handlePermissionChange}
 | 
				
			||||||
                checkAllProjectPermissions={checkAllProjectPermissions}
 | 
					                checkAllProjectPermissions={checkAllProjectPermissions}
 | 
				
			||||||
                checkAllEnvironmentPermissions={checkAllEnvironmentPermissions}
 | 
					                checkAllEnvironmentPermissions={checkAllEnvironmentPermissions}
 | 
				
			||||||
                submitButtonText="Create"
 | 
					                mode="Create"
 | 
				
			||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
                validateNameUniqueness={validateNameUniqueness}
 | 
					                validateNameUniqueness={validateNameUniqueness}
 | 
				
			||||||
                getRoleKey={getRoleKey}
 | 
					                getRoleKey={getRoleKey}
 | 
				
			||||||
            />
 | 
					            >
 | 
				
			||||||
 | 
					                <PermissionButton permission={ADMIN} type="submit">
 | 
				
			||||||
 | 
					                    Create role
 | 
				
			||||||
 | 
					                </PermissionButton>
 | 
				
			||||||
 | 
					            </ProjectRoleForm>
 | 
				
			||||||
        </FormTemplate>
 | 
					        </FormTemplate>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -11,6 +11,8 @@ import useProjectRole from '../../../../hooks/api/getters/useProjectRole/useProj
 | 
				
			|||||||
import { IPermission } from '../../../../interfaces/project';
 | 
					import { IPermission } from '../../../../interfaces/project';
 | 
				
			||||||
import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
 | 
					import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
 | 
				
			||||||
import useToast from '../../../../hooks/useToast';
 | 
					import useToast from '../../../../hooks/useToast';
 | 
				
			||||||
 | 
					import PermissionButton from '../../../common/PermissionButton/PermissionButton';
 | 
				
			||||||
 | 
					import { ADMIN } from '../../../providers/AccessProvider/permissions';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const EditProjectRole = () => {
 | 
					const EditProjectRole = () => {
 | 
				
			||||||
    const { uiConfig } = useUiConfig();
 | 
					    const { uiConfig } = useUiConfig();
 | 
				
			||||||
@ -117,11 +119,15 @@ to resources within a project"
 | 
				
			|||||||
                handlePermissionChange={handlePermissionChange}
 | 
					                handlePermissionChange={handlePermissionChange}
 | 
				
			||||||
                checkAllProjectPermissions={checkAllProjectPermissions}
 | 
					                checkAllProjectPermissions={checkAllProjectPermissions}
 | 
				
			||||||
                checkAllEnvironmentPermissions={checkAllEnvironmentPermissions}
 | 
					                checkAllEnvironmentPermissions={checkAllEnvironmentPermissions}
 | 
				
			||||||
                submitButtonText="Edit"
 | 
					                mode="Edit"
 | 
				
			||||||
                errors={errors}
 | 
					                errors={errors}
 | 
				
			||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
                getRoleKey={getRoleKey}
 | 
					                getRoleKey={getRoleKey}
 | 
				
			||||||
            />
 | 
					            >
 | 
				
			||||||
 | 
					                <PermissionButton permission={ADMIN} type="submit">
 | 
				
			||||||
 | 
					                    Edit role
 | 
				
			||||||
 | 
					                </PermissionButton>
 | 
				
			||||||
 | 
					            </ProjectRoleForm>
 | 
				
			||||||
        </FormTemplate>
 | 
					        </FormTemplate>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -17,7 +17,7 @@ export const useStyles = makeStyles(theme => ({
 | 
				
			|||||||
        justifyContent: 'flex-end',
 | 
					        justifyContent: 'flex-end',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    cancelButton: {
 | 
					    cancelButton: {
 | 
				
			||||||
        marginRight: '1.5rem',
 | 
					        marginLeft: '1.5rem',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    inputDescription: {
 | 
					    inputDescription: {
 | 
				
			||||||
        marginBottom: '0.5rem',
 | 
					        marginBottom: '0.5rem',
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,3 @@
 | 
				
			|||||||
import PermissionButton from '../../../common/PermissionButton/PermissionButton';
 | 
					 | 
				
			||||||
import { ADMIN } from '../../../providers/AccessProvider/permissions';
 | 
					 | 
				
			||||||
import Input from '../../../common/Input/Input';
 | 
					import Input from '../../../common/Input/Input';
 | 
				
			||||||
import EnvironmentPermissionAccordion from './EnvironmentPermissionAccordion/EnvironmentPermissionAccordion';
 | 
					import EnvironmentPermissionAccordion from './EnvironmentPermissionAccordion/EnvironmentPermissionAccordion';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
@ -31,13 +29,14 @@ interface IProjectRoleForm {
 | 
				
			|||||||
    handleSubmit: (e: any) => void;
 | 
					    handleSubmit: (e: any) => void;
 | 
				
			||||||
    handleCancel: () => void;
 | 
					    handleCancel: () => void;
 | 
				
			||||||
    errors: { [key: string]: string };
 | 
					    errors: { [key: string]: string };
 | 
				
			||||||
    submitButtonText: string;
 | 
					    mode?: string;
 | 
				
			||||||
    clearErrors: () => void;
 | 
					    clearErrors: () => void;
 | 
				
			||||||
    validateNameUniqueness?: () => void;
 | 
					    validateNameUniqueness?: () => void;
 | 
				
			||||||
    getRoleKey: (permission: { id: number; environment?: string }) => string;
 | 
					    getRoleKey: (permission: { id: number; environment?: string }) => string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const ProjectRoleForm = ({
 | 
					const ProjectRoleForm: React.FC<IProjectRoleForm> = ({
 | 
				
			||||||
 | 
					    children,
 | 
				
			||||||
    handleSubmit,
 | 
					    handleSubmit,
 | 
				
			||||||
    handleCancel,
 | 
					    handleCancel,
 | 
				
			||||||
    roleName,
 | 
					    roleName,
 | 
				
			||||||
@ -49,7 +48,7 @@ const ProjectRoleForm = ({
 | 
				
			|||||||
    checkAllProjectPermissions,
 | 
					    checkAllProjectPermissions,
 | 
				
			||||||
    checkAllEnvironmentPermissions,
 | 
					    checkAllEnvironmentPermissions,
 | 
				
			||||||
    errors,
 | 
					    errors,
 | 
				
			||||||
    submitButtonText,
 | 
					    mode,
 | 
				
			||||||
    validateNameUniqueness,
 | 
					    validateNameUniqueness,
 | 
				
			||||||
    clearErrors,
 | 
					    clearErrors,
 | 
				
			||||||
    getRoleKey,
 | 
					    getRoleKey,
 | 
				
			||||||
@ -173,16 +172,10 @@ const ProjectRoleForm = ({
 | 
				
			|||||||
            <h3 className={styles.header}>Environment permissions</h3>
 | 
					            <h3 className={styles.header}>Environment permissions</h3>
 | 
				
			||||||
            <div>{renderEnvironmentPermissions()}</div>
 | 
					            <div>{renderEnvironmentPermissions()}</div>
 | 
				
			||||||
            <div className={styles.buttonContainer}>
 | 
					            <div className={styles.buttonContainer}>
 | 
				
			||||||
 | 
					                {children}
 | 
				
			||||||
                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
					                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
				
			||||||
                    Cancel
 | 
					                    Cancel
 | 
				
			||||||
                </Button>
 | 
					                </Button>
 | 
				
			||||||
                <PermissionButton
 | 
					 | 
				
			||||||
                    onClick={handleSubmit}
 | 
					 | 
				
			||||||
                    permission={ADMIN}
 | 
					 | 
				
			||||||
                    type="submit"
 | 
					 | 
				
			||||||
                >
 | 
					 | 
				
			||||||
                    {submitButtonText} role
 | 
					 | 
				
			||||||
                </PermissionButton>
 | 
					 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
				
			|||||||
@ -99,7 +99,6 @@ const CreateUser = () => {
 | 
				
			|||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <PermissionButton
 | 
					                <PermissionButton
 | 
				
			||||||
                    onClick={handleSubmit}
 | 
					 | 
				
			||||||
                    permission={ADMIN}
 | 
					                    permission={ADMIN}
 | 
				
			||||||
                    type="submit"
 | 
					                    type="submit"
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
 | 
				
			|||||||
@ -100,7 +100,6 @@ const EditUser = () => {
 | 
				
			|||||||
                mode={EDIT}
 | 
					                mode={EDIT}
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <PermissionButton
 | 
					                <PermissionButton
 | 
				
			||||||
                    onClick={handleSubmit}
 | 
					 | 
				
			||||||
                    permission={ADMIN}
 | 
					                    permission={ADMIN}
 | 
				
			||||||
                    type="submit"
 | 
					                    type="submit"
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ export const useStyles = makeStyles(theme => ({
 | 
				
			|||||||
        justifyContent: 'flex-end',
 | 
					        justifyContent: 'flex-end',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    cancelButton: {
 | 
					    cancelButton: {
 | 
				
			||||||
        marginRight: '1.5rem',
 | 
					        marginLeft: '1.5rem',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    inputDescription: {
 | 
					    inputDescription: {
 | 
				
			||||||
        marginBottom: '0.5rem',
 | 
					        marginBottom: '0.5rem',
 | 
				
			||||||
 | 
				
			|||||||
@ -149,10 +149,10 @@ const UserForm: React.FC<IUserForm> = ({
 | 
				
			|||||||
                />
 | 
					                />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div className={styles.buttonContainer}>
 | 
					            <div className={styles.buttonContainer}>
 | 
				
			||||||
 | 
					                {children}
 | 
				
			||||||
                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
					                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
				
			||||||
                    Cancel
 | 
					                    Cancel
 | 
				
			||||||
                </Button>
 | 
					                </Button>
 | 
				
			||||||
                {children}
 | 
					 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ export const useStyles = makeStyles(theme => ({
 | 
				
			|||||||
        justifyContent: 'flex-end',
 | 
					        justifyContent: 'flex-end',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    cancelButton: {
 | 
					    cancelButton: {
 | 
				
			||||||
        marginRight: '1.5rem',
 | 
					        marginLeft: '1.5rem',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    inputDescription: {
 | 
					    inputDescription: {
 | 
				
			||||||
        marginBottom: '0.5rem',
 | 
					        marginBottom: '0.5rem',
 | 
				
			||||||
 | 
				
			|||||||
@ -185,10 +185,10 @@ const ContextForm: React.FC<IContextForm> = ({
 | 
				
			|||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div className={styles.buttonContainer}>
 | 
					            <div className={styles.buttonContainer}>
 | 
				
			||||||
 | 
					                {children}
 | 
				
			||||||
                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
					                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
				
			||||||
                    Cancel
 | 
					                    Cancel
 | 
				
			||||||
                </Button>
 | 
					                </Button>
 | 
				
			||||||
                {children}
 | 
					 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
				
			|||||||
@ -102,7 +102,6 @@ const CreateEnvironment = () => {
 | 
				
			|||||||
                        clearErrors={clearErrors}
 | 
					                        clearErrors={clearErrors}
 | 
				
			||||||
                    >
 | 
					                    >
 | 
				
			||||||
                        <PermissionButton
 | 
					                        <PermissionButton
 | 
				
			||||||
                            onClick={handleSubmit}
 | 
					 | 
				
			||||||
                            permission={ADMIN}
 | 
					                            permission={ADMIN}
 | 
				
			||||||
                            type="submit"
 | 
					                            type="submit"
 | 
				
			||||||
                        >
 | 
					                        >
 | 
				
			||||||
 | 
				
			|||||||
@ -86,7 +86,6 @@ const EditEnvironment = () => {
 | 
				
			|||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <PermissionButton
 | 
					                <PermissionButton
 | 
				
			||||||
                    onClick={handleSubmit}
 | 
					 | 
				
			||||||
                    permission={ADMIN}
 | 
					                    permission={ADMIN}
 | 
				
			||||||
                    type="submit"
 | 
					                    type="submit"
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ export const useStyles = makeStyles(theme => ({
 | 
				
			|||||||
        justifyContent: 'flex-end',
 | 
					        justifyContent: 'flex-end',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    cancelButton: {
 | 
					    cancelButton: {
 | 
				
			||||||
        marginRight: '1.5rem',
 | 
					        marginLeft: '1.5rem',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    inputDescription: {
 | 
					    inputDescription: {
 | 
				
			||||||
        marginBottom: '0.5rem',
 | 
					        marginBottom: '0.5rem',
 | 
				
			||||||
 | 
				
			|||||||
@ -62,10 +62,10 @@ const EnvironmentForm: React.FC<IEnvironmentForm> = ({
 | 
				
			|||||||
                />
 | 
					                />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div className={styles.buttonContainer}>
 | 
					            <div className={styles.buttonContainer}>
 | 
				
			||||||
 | 
					                {children}
 | 
				
			||||||
                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
					                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
				
			||||||
                    Cancel
 | 
					                    Cancel
 | 
				
			||||||
                </Button>
 | 
					                </Button>
 | 
				
			||||||
                {children}
 | 
					 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,8 @@ import useProjectForm from '../hooks/useProjectForm';
 | 
				
			|||||||
import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
 | 
					import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
 | 
				
			||||||
import useToast from '../../../../hooks/useToast';
 | 
					import useToast from '../../../../hooks/useToast';
 | 
				
			||||||
import useUser from '../../../../hooks/api/getters/useUser/useUser';
 | 
					import useUser from '../../../../hooks/api/getters/useUser/useUser';
 | 
				
			||||||
 | 
					import PermissionButton from '../../../common/PermissionButton/PermissionButton';
 | 
				
			||||||
 | 
					import { CREATE_PROJECT } from '../../../providers/AccessProvider/permissions';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const CreateProject = () => {
 | 
					const CreateProject = () => {
 | 
				
			||||||
    /* @ts-ignore */
 | 
					    /* @ts-ignore */
 | 
				
			||||||
@ -24,6 +26,7 @@ const CreateProject = () => {
 | 
				
			|||||||
        clearErrors,
 | 
					        clearErrors,
 | 
				
			||||||
        validateIdUniqueness,
 | 
					        validateIdUniqueness,
 | 
				
			||||||
        validateName,
 | 
					        validateName,
 | 
				
			||||||
 | 
					        validateProjectId,
 | 
				
			||||||
        errors,
 | 
					        errors,
 | 
				
			||||||
    } = useProjectForm();
 | 
					    } = useProjectForm();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -33,8 +36,10 @@ const CreateProject = () => {
 | 
				
			|||||||
        e.preventDefault();
 | 
					        e.preventDefault();
 | 
				
			||||||
        clearErrors();
 | 
					        clearErrors();
 | 
				
			||||||
        const validName = validateName();
 | 
					        const validName = validateName();
 | 
				
			||||||
 | 
					        const validProjectId = validateProjectId();
 | 
				
			||||||
        const validId = await validateIdUniqueness();
 | 
					        const validId = await validateIdUniqueness();
 | 
				
			||||||
        if (validName && validId) {
 | 
					
 | 
				
			||||||
 | 
					        if (validName && validId && validProjectId) {
 | 
				
			||||||
            const payload = getProjectPayload();
 | 
					            const payload = getProjectPayload();
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                await createProject(payload);
 | 
					                await createProject(payload);
 | 
				
			||||||
@ -83,10 +88,17 @@ const CreateProject = () => {
 | 
				
			|||||||
                setProjectName={setProjectName}
 | 
					                setProjectName={setProjectName}
 | 
				
			||||||
                projectDesc={projectDesc}
 | 
					                projectDesc={projectDesc}
 | 
				
			||||||
                setProjectDesc={setProjectDesc}
 | 
					                setProjectDesc={setProjectDesc}
 | 
				
			||||||
                submitButtonText="Create"
 | 
					                mode="Create"
 | 
				
			||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
                validateIdUniqueness={validateIdUniqueness}
 | 
					                validateIdUniqueness={validateIdUniqueness}
 | 
				
			||||||
            />
 | 
					            >
 | 
				
			||||||
 | 
					                <PermissionButton
 | 
				
			||||||
 | 
					                    permission={CREATE_PROJECT}
 | 
				
			||||||
 | 
					                    type="submit"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                    Create project
 | 
				
			||||||
 | 
					                </PermissionButton>
 | 
				
			||||||
 | 
					            </ProjectForm>
 | 
				
			||||||
        </FormTemplate>
 | 
					        </FormTemplate>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,8 @@ import useProjectForm from '../hooks/useProjectForm';
 | 
				
			|||||||
import useProject from '../../../../hooks/api/getters/useProject/useProject';
 | 
					import useProject from '../../../../hooks/api/getters/useProject/useProject';
 | 
				
			||||||
import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
 | 
					import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
 | 
				
			||||||
import useToast from '../../../../hooks/useToast';
 | 
					import useToast from '../../../../hooks/useToast';
 | 
				
			||||||
 | 
					import PermissionButton from '../../../common/PermissionButton/PermissionButton';
 | 
				
			||||||
 | 
					import { UPDATE_PROJECT } from '../../../../store/project/actions';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const EditProject = () => {
 | 
					const EditProject = () => {
 | 
				
			||||||
    const { uiConfig } = useUiConfig();
 | 
					    const { uiConfig } = useUiConfig();
 | 
				
			||||||
@ -24,6 +26,7 @@ const EditProject = () => {
 | 
				
			|||||||
        clearErrors,
 | 
					        clearErrors,
 | 
				
			||||||
        validateIdUniqueness,
 | 
					        validateIdUniqueness,
 | 
				
			||||||
        validateName,
 | 
					        validateName,
 | 
				
			||||||
 | 
					        validateProjectId,
 | 
				
			||||||
        errors,
 | 
					        errors,
 | 
				
			||||||
    } = useProjectForm(id, project.name, project.description);
 | 
					    } = useProjectForm(id, project.name, project.description);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -44,8 +47,9 @@ const EditProject = () => {
 | 
				
			|||||||
        const payload = getProjectPayload();
 | 
					        const payload = getProjectPayload();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const validName = validateName();
 | 
					        const validName = validateName();
 | 
				
			||||||
 | 
					        const validId = validateProjectId();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (validName) {
 | 
					        if (validName && validId) {
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                await editProject(id, payload);
 | 
					                await editProject(id, payload);
 | 
				
			||||||
                refetch();
 | 
					                refetch();
 | 
				
			||||||
@ -82,10 +86,17 @@ const EditProject = () => {
 | 
				
			|||||||
                setProjectName={setProjectName}
 | 
					                setProjectName={setProjectName}
 | 
				
			||||||
                projectDesc={projectDesc}
 | 
					                projectDesc={projectDesc}
 | 
				
			||||||
                setProjectDesc={setProjectDesc}
 | 
					                setProjectDesc={setProjectDesc}
 | 
				
			||||||
                submitButtonText="Edit"
 | 
					                mode="Edit"
 | 
				
			||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
                validateIdUniqueness={validateIdUniqueness}
 | 
					                validateIdUniqueness={validateIdUniqueness}
 | 
				
			||||||
            />
 | 
					            >
 | 
				
			||||||
 | 
					                <PermissionButton
 | 
				
			||||||
 | 
					                    permission={UPDATE_PROJECT}
 | 
				
			||||||
 | 
					                    type="submit"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                    Edit project
 | 
				
			||||||
 | 
					                </PermissionButton>
 | 
				
			||||||
 | 
					            </ProjectForm>
 | 
				
			||||||
        </FormTemplate>
 | 
					        </FormTemplate>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ export const useStyles = makeStyles(theme => ({
 | 
				
			|||||||
        justifyContent: 'flex-end',
 | 
					        justifyContent: 'flex-end',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    cancelButton: {
 | 
					    cancelButton: {
 | 
				
			||||||
        marginRight: '1.5rem',
 | 
					        marginLeft: '1.5rem',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    inputDescription: {
 | 
					    inputDescription: {
 | 
				
			||||||
        marginBottom: '0.5rem',
 | 
					        marginBottom: '0.5rem',
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,3 @@
 | 
				
			|||||||
import PermissionButton from '../../../common/PermissionButton/PermissionButton';
 | 
					 | 
				
			||||||
import { CREATE_PROJECT } from '../../../providers/AccessProvider/permissions';
 | 
					 | 
				
			||||||
import Input from '../../../common/Input/Input';
 | 
					import Input from '../../../common/Input/Input';
 | 
				
			||||||
import { TextField, Button } from '@material-ui/core';
 | 
					import { TextField, Button } from '@material-ui/core';
 | 
				
			||||||
import { useStyles } from './ProjectForm.style';
 | 
					import { useStyles } from './ProjectForm.style';
 | 
				
			||||||
@ -16,12 +14,13 @@ interface IProjectForm {
 | 
				
			|||||||
    handleSubmit: (e: any) => void;
 | 
					    handleSubmit: (e: any) => void;
 | 
				
			||||||
    handleCancel: () => void;
 | 
					    handleCancel: () => void;
 | 
				
			||||||
    errors: { [key: string]: string };
 | 
					    errors: { [key: string]: string };
 | 
				
			||||||
    submitButtonText: string;
 | 
					    mode: string;
 | 
				
			||||||
    clearErrors: () => void;
 | 
					    clearErrors: () => void;
 | 
				
			||||||
    validateIdUniqueness: () => void;
 | 
					    validateIdUniqueness: () => void;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const ProjectForm = ({
 | 
					const ProjectForm: React.FC<IProjectForm> = ({
 | 
				
			||||||
 | 
					    children,
 | 
				
			||||||
    handleSubmit,
 | 
					    handleSubmit,
 | 
				
			||||||
    handleCancel,
 | 
					    handleCancel,
 | 
				
			||||||
    projectId,
 | 
					    projectId,
 | 
				
			||||||
@ -31,10 +30,10 @@ const ProjectForm = ({
 | 
				
			|||||||
    setProjectName,
 | 
					    setProjectName,
 | 
				
			||||||
    setProjectDesc,
 | 
					    setProjectDesc,
 | 
				
			||||||
    errors,
 | 
					    errors,
 | 
				
			||||||
    submitButtonText,
 | 
					    mode,
 | 
				
			||||||
    validateIdUniqueness,
 | 
					    validateIdUniqueness,
 | 
				
			||||||
    clearErrors,
 | 
					    clearErrors,
 | 
				
			||||||
}: IProjectForm) => {
 | 
					}) => {
 | 
				
			||||||
    const styles = useStyles();
 | 
					    const styles = useStyles();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
@ -54,7 +53,7 @@ const ProjectForm = ({
 | 
				
			|||||||
                    errorText={errors.id}
 | 
					                    errorText={errors.id}
 | 
				
			||||||
                    onFocus={() => clearErrors()}
 | 
					                    onFocus={() => clearErrors()}
 | 
				
			||||||
                    onBlur={validateIdUniqueness}
 | 
					                    onBlur={validateIdUniqueness}
 | 
				
			||||||
                    disabled={submitButtonText === 'Edit'}
 | 
					                    disabled={mode === 'Edit'}
 | 
				
			||||||
                />
 | 
					                />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <p className={styles.inputDescription}>
 | 
					                <p className={styles.inputDescription}>
 | 
				
			||||||
@ -85,16 +84,10 @@ const ProjectForm = ({
 | 
				
			|||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <div className={styles.buttonContainer}>
 | 
					            <div className={styles.buttonContainer}>
 | 
				
			||||||
 | 
					                {children}
 | 
				
			||||||
                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
					                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
				
			||||||
                    Cancel
 | 
					                    Cancel
 | 
				
			||||||
                </Button>
 | 
					                </Button>
 | 
				
			||||||
                <PermissionButton
 | 
					 | 
				
			||||||
                    onClick={handleSubmit}
 | 
					 | 
				
			||||||
                    permission={CREATE_PROJECT}
 | 
					 | 
				
			||||||
                    type="submit"
 | 
					 | 
				
			||||||
                >
 | 
					 | 
				
			||||||
                    {submitButtonText} project
 | 
					 | 
				
			||||||
                </PermissionButton>
 | 
					 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
				
			|||||||
@ -52,12 +52,20 @@ const useProjectForm = (
 | 
				
			|||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    const validateProjectId = () => {
 | 
				
			||||||
 | 
					        if (projectId.length === 0) {
 | 
				
			||||||
 | 
					            setErrors(prev => ({ ...prev, id: 'id can not be empty.' }));
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const validateName = () => {
 | 
					    const validateName = () => {
 | 
				
			||||||
        if (projectName.length === 0) {
 | 
					        if (projectName.length === 0) {
 | 
				
			||||||
            setErrors(prev => ({ ...prev, name: 'Name can not be empty.' }));
 | 
					            setErrors(prev => ({ ...prev, name: 'Name can not be empty.' }));
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -74,6 +82,7 @@ const useProjectForm = (
 | 
				
			|||||||
        setProjectDesc,
 | 
					        setProjectDesc,
 | 
				
			||||||
        getProjectPayload,
 | 
					        getProjectPayload,
 | 
				
			||||||
        validateName,
 | 
					        validateName,
 | 
				
			||||||
 | 
					        validateProjectId,
 | 
				
			||||||
        validateIdUniqueness,
 | 
					        validateIdUniqueness,
 | 
				
			||||||
        clearErrors,
 | 
					        clearErrors,
 | 
				
			||||||
        errors,
 | 
					        errors,
 | 
				
			||||||
 | 
				
			|||||||
@ -77,7 +77,6 @@ const CreateTagType = () => {
 | 
				
			|||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <PermissionButton
 | 
					                <PermissionButton
 | 
				
			||||||
                    onClick={handleSubmit}
 | 
					 | 
				
			||||||
                    permission={UPDATE_TAG_TYPE}
 | 
					                    permission={UPDATE_TAG_TYPE}
 | 
				
			||||||
                    type="submit"
 | 
					                    type="submit"
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
 | 
				
			|||||||
@ -75,7 +75,6 @@ const EditTagType = () => {
 | 
				
			|||||||
                clearErrors={clearErrors}
 | 
					                clearErrors={clearErrors}
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <PermissionButton
 | 
					                <PermissionButton
 | 
				
			||||||
                    onClick={handleSubmit}
 | 
					 | 
				
			||||||
                    permission={UPDATE_TAG_TYPE}
 | 
					                    permission={UPDATE_TAG_TYPE}
 | 
				
			||||||
                    type="submit"
 | 
					                    type="submit"
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ export const useStyles = makeStyles(theme => ({
 | 
				
			|||||||
        justifyContent: 'flex-end',
 | 
					        justifyContent: 'flex-end',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    cancelButton: {
 | 
					    cancelButton: {
 | 
				
			||||||
        marginRight: '1.5rem',
 | 
					        marginLeft: '1.5rem',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    inputDescription: {
 | 
					    inputDescription: {
 | 
				
			||||||
        marginBottom: '0.5rem',
 | 
					        marginBottom: '0.5rem',
 | 
				
			||||||
 | 
				
			|||||||
@ -65,10 +65,10 @@ const TagTypeForm: React.FC<ITagTypeForm> = ({
 | 
				
			|||||||
                />
 | 
					                />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div className={styles.buttonContainer}>
 | 
					            <div className={styles.buttonContainer}>
 | 
				
			||||||
 | 
					                {children}
 | 
				
			||||||
                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
					                <Button onClick={handleCancel} className={styles.cancelButton}>
 | 
				
			||||||
                    Cancel
 | 
					                    Cancel
 | 
				
			||||||
                </Button>
 | 
					                </Button>
 | 
				
			||||||
                {children}
 | 
					 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user