'use client' import { useLHSession } from '@components/Contexts/LHSessionContext' import { useOrg } from '@components/Contexts/OrgContext' import FormLayout, { ButtonBlack, Flex, FormField, FormLabel, } from '@components/Objects/StyledElements/Form/Form' import * as Form from '@radix-ui/react-form' import { FormMessage } from '@radix-ui/react-form' import { getAPIUrl } from '@services/config/config' import { updateUserRole } from '@services/organizations/orgs' import React, { useEffect } from 'react' import toast from 'react-hot-toast' import { BarLoader } from 'react-spinners' import { mutate } from 'swr' interface Props { user: any setRolesModal: any alreadyAssignedRole: any } function RolesUpdate(props: Props) { const org = useOrg() as any const session = useLHSession() as any const access_token = session?.data?.tokens?.access_token; const [isSubmitting, setIsSubmitting] = React.useState(false) const [assignedRole, setAssignedRole] = React.useState( props.alreadyAssignedRole ) const [error, setError] = React.useState(null) as any const handleAssignedRole = (event: React.ChangeEvent) => { setError(null) setAssignedRole(event.target.value) } const handleSubmit = async (e: any) => { e.preventDefault() setIsSubmitting(true) const res = await updateUserRole(org.id, props.user.user.id, assignedRole,access_token) if (res.status === 200) { await mutate(`${getAPIUrl()}orgs/${org.id}/users`) props.setRolesModal(false) toast.success("Updated role") } else { setIsSubmitting(false) setError('Error ' + res.status + ': ' + res.data.detail) toast.error("Couldn't update now") } } useEffect(() => {}, [assignedRole]) return (
{error ? (
{error}
) : ( '' )} Roles Please choose a role for the user
{isSubmitting ? ( ) : ( 'Update user role' )}
) } export default RolesUpdate