From 6c42bd31c63d818fe74e50ea4ef684f849a544e0 Mon Sep 17 00:00:00 2001 From: Alex Khomenko Date: Tue, 13 Feb 2024 13:04:42 +0100 Subject: [PATCH] Teams: Remove Form component usage (#82367) * Teams: Remove Form usage * Update team settings --- public/app/features/teams/CreateTeam.tsx | 73 +++++++-------- public/app/features/teams/TeamSettings.tsx | 102 +++++++++++---------- 2 files changed, 89 insertions(+), 86 deletions(-) diff --git a/public/app/features/teams/CreateTeam.tsx b/public/app/features/teams/CreateTeam.tsx index 5136e92abf0..6e1a604f5ee 100644 --- a/public/app/features/teams/CreateTeam.tsx +++ b/public/app/features/teams/CreateTeam.tsx @@ -1,8 +1,9 @@ -import React, { useState } from 'react'; +import React, { JSX, useState } from 'react'; +import { useForm } from 'react-hook-form'; import { NavModelItem } from '@grafana/data'; import { getBackendSrv, locationService } from '@grafana/runtime'; -import { Button, Form, Field, Input, FieldSet } from '@grafana/ui'; +import { Button, Field, Input, FieldSet } from '@grafana/ui'; import { Page } from 'app/core/components/Page/Page'; import { TeamRolePicker } from 'app/core/components/RolePicker/TeamRolePicker'; import { updateTeamRoles } from 'app/core/components/RolePicker/api'; @@ -21,7 +22,11 @@ export const CreateTeam = (): JSX.Element => { const currentOrgId = contextSrv.user.orgId; const [pendingRoles, setPendingRoles] = useState([]); const [{ roleOptions }] = useRoleOptions(currentOrgId); - + const { + handleSubmit, + register, + formState: { errors }, + } = useForm(); const canUpdateRoles = contextSrv.hasPermission(AccessControlAction.ActionUserRolesAdd) && contextSrv.hasPermission(AccessControlAction.ActionUserRolesRemove); @@ -44,40 +49,36 @@ export const CreateTeam = (): JSX.Element => { return ( -
- {({ register, errors }) => ( - <> -
- - - - {contextSrv.licensedAccessControlEnabled() && ( - - - - )} - - - -
+ +
+ + + + {contextSrv.licensedAccessControlEnabled() && ( + + + + )} + + + +
- - - )} -
+ +
); diff --git a/public/app/features/teams/TeamSettings.tsx b/public/app/features/teams/TeamSettings.tsx index 3b09298d72b..09165357279 100644 --- a/public/app/features/teams/TeamSettings.tsx +++ b/public/app/features/teams/TeamSettings.tsx @@ -1,7 +1,8 @@ import React, { useState } from 'react'; +import { useForm } from 'react-hook-form'; import { connect, ConnectedProps } from 'react-redux'; -import { Input, Field, Form, Button, FieldSet, VerticalGroup } from '@grafana/ui'; +import { Input, Field, Button, FieldSet, Stack } from '@grafana/ui'; import { TeamRolePicker } from 'app/core/components/RolePicker/TeamRolePicker'; import { updateTeamRoles } from 'app/core/components/RolePicker/api'; import { useRoleOptions } from 'app/core/components/RolePicker/hooks'; @@ -28,6 +29,11 @@ export const TeamSettings = ({ team, updateTeam }: Props) => { const [{ roleOptions }] = useRoleOptions(currentOrgId); const [pendingRoles, setPendingRoles] = useState([]); + const { + handleSubmit, + register, + formState: { errors }, + } = useForm({ defaultValues: team }); const canUpdateRoles = contextSrv.hasPermission(AccessControlAction.ActionTeamsRolesAdd) && @@ -37,59 +43,55 @@ export const TeamSettings = ({ team, updateTeam }: Props) => { contextSrv.hasPermissionInMetadata(AccessControlAction.ActionTeamsRolesList, team) && contextSrv.hasPermission(AccessControlAction.ActionRolesList); + const onSubmit = async (formTeam: Team) => { + if (contextSrv.licensedAccessControlEnabled() && canUpdateRoles) { + await updateTeamRoles(pendingRoles, team.id); + } + updateTeam(formTeam.name, formTeam.email || ''); + }; + return ( - -
{ - if (contextSrv.licensedAccessControlEnabled() && canUpdateRoles) { - await updateTeamRoles(pendingRoles, team.id); - } - updateTeam(formTeam.name, formTeam.email || ''); - }} - disabled={!canWriteTeamSettings} - > - {({ register, errors }) => ( -
- - - + + +
+ + + - {contextSrv.licensedAccessControlEnabled() && canListRoles && ( - - - - )} - - - + {contextSrv.licensedAccessControlEnabled() && canListRoles && ( + + - -
- )} - + )} + + + + + +
+ -
+ ); };