|
|
@@ -1,6 +1,6 @@ |
|
|
|
"use client"; |
|
|
|
import { useRouter, useSearchParams } from "next/navigation"; |
|
|
|
import { useCallback, useEffect, useMemo, useState } from "react"; |
|
|
|
import React, { useCallback, useEffect, useMemo, useState } from "react"; |
|
|
|
import SearchResults, { Column } from "../SearchResults"; |
|
|
|
// import { TeamResult } from "@/app/api/team"; |
|
|
|
import { useTranslation } from "react-i18next"; |
|
|
@@ -16,19 +16,19 @@ import { |
|
|
|
import { Check, Close, Error } from "@mui/icons-material"; |
|
|
|
import { StaffResult } from "@/app/api/staff"; |
|
|
|
import { CreateGroupInputs, auth, fetchAuth, saveGroup } from "@/app/api/group/actions"; |
|
|
|
import { UserGroupResult } from "@/app/api/group"; |
|
|
|
import { IndivUserGroup, UserGroupResult } from "@/app/api/group"; |
|
|
|
import { UserResult } from "@/app/api/user"; |
|
|
|
import GroupInfo from "./GroupInfo"; |
|
|
|
import AuthorityAllocation from "./AuthorityAllocation"; |
|
|
|
import UserAllocation from "./UserAllocation"; |
|
|
|
interface Props { |
|
|
|
groups: UserGroupResult[]; |
|
|
|
// auths: auth[]; |
|
|
|
// groups: UserGroupResult[]; |
|
|
|
auths: auth[]; |
|
|
|
users: UserResult[]; |
|
|
|
group: IndivUserGroup |
|
|
|
} |
|
|
|
|
|
|
|
const EditUserGroup: React.FC<Props> = ({ groups, users }) => { |
|
|
|
// console.log(users) |
|
|
|
const EditUserGroup: React.FC<Props> = ({ users, auths, group }) => { |
|
|
|
const { t } = useTranslation(); |
|
|
|
const [serverError, setServerError] = useState(""); |
|
|
|
const formProps = useForm<CreateGroupInputs>(); |
|
|
@@ -36,7 +36,6 @@ const EditUserGroup: React.FC<Props> = ({ groups, users }) => { |
|
|
|
const id = parseInt(searchParams.get("id") || "0"); |
|
|
|
const router = useRouter(); |
|
|
|
const [tabIndex, setTabIndex] = useState(0); |
|
|
|
const [auths, setAuths] = useState<auth[]>(); |
|
|
|
|
|
|
|
const errors = formProps.formState.errors; |
|
|
|
|
|
|
@@ -79,22 +78,19 @@ const EditUserGroup: React.FC<Props> = ({ groups, users }) => { |
|
|
|
}, |
|
|
|
[router] |
|
|
|
); |
|
|
|
|
|
|
|
const resetGroup = React.useCallback(() => { |
|
|
|
formProps.reset({ |
|
|
|
name: group.data.name, |
|
|
|
description: group.data.description, |
|
|
|
addAuthIds: group.authIds, |
|
|
|
addUserIds: group.userIds, |
|
|
|
}) |
|
|
|
}, []); |
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
const thisGroup = groups.filter((item) => item.id === id)[0]; |
|
|
|
const addUserIds = users.filter((item) => item.groupId === id).map((data) => data.id) |
|
|
|
let addAuthIds: number[] = [] |
|
|
|
fetchAuth("group", id).then((data) => { |
|
|
|
setAuths(data.records) |
|
|
|
addAuthIds = data.records.filter((data) => data.v === 1).map((data) => data.id).sort((a, b) => a - b); |
|
|
|
formProps.reset({ |
|
|
|
name: thisGroup.name, |
|
|
|
description: thisGroup.description, |
|
|
|
addAuthIds: addAuthIds, |
|
|
|
addUserIds: addUserIds, |
|
|
|
}); |
|
|
|
}); |
|
|
|
// console.log(auths) |
|
|
|
}, [groups, users]); |
|
|
|
resetGroup() |
|
|
|
}, [group, users]); |
|
|
|
|
|
|
|
return ( |
|
|
|
<> |
|
|
|