@@ -59,10 +59,13 @@ const SkillSearch: React.FC<Props> = ({ skill }) => { | |||||
deleteDialog(async () => { | deleteDialog(async () => { | ||||
await deleteSkill(skill.id); | await deleteSkill(skill.id); | ||||
successDialog(deleteSuccess, t); | successDialog(deleteSuccess, t); | ||||
setFilteredSkill((prev) => prev.filter((obj) => obj.id !== skill.id)); | |||||
}, t); | }, t); | ||||
}, []); | }, []); | ||||
useEffect(() => { | |||||
setFilteredSkill(skill) | |||||
}, [skill]); | |||||
const columns = useMemo<Column<SkillResult>[]>( | const columns = useMemo<Column<SkillResult>[]>( | ||||
() => [ | () => [ | ||||
{ | { | ||||
@@ -90,10 +90,13 @@ const StaffSearch: React.FC<Props> = ({ staff, teams, grades, positions, isAuthe | |||||
deleteDialog(async () => { | deleteDialog(async () => { | ||||
await deleteStaff(staff.id); | await deleteStaff(staff.id); | ||||
successDialog(t("Delete Success"), t); | successDialog(t("Delete Success"), t); | ||||
setFilteredStaff((prev) => prev.filter((obj) => obj.id !== staff.id)); | |||||
}, t); | }, t); | ||||
}, []); | }, []); | ||||
useEffect(() => { | |||||
setFilteredStaff(staff) | |||||
}, [staff]); | |||||
const columns = useMemo<Column<StaffResult>[]>( | const columns = useMemo<Column<StaffResult>[]>( | ||||
() => [ | () => [ | ||||
{ | { | ||||
@@ -2,7 +2,7 @@ | |||||
import { TeamResult } from "@/app/api/team"; | import { TeamResult } from "@/app/api/team"; | ||||
import SearchBox, { Criterion } from "../SearchBox"; | import SearchBox, { Criterion } from "../SearchBox"; | ||||
import { useCallback, useMemo, useState } from "react"; | |||||
import { useCallback, useEffect, useMemo, useState } from "react"; | |||||
import { useTranslation } from "react-i18next"; | import { useTranslation } from "react-i18next"; | ||||
import SearchResults, { Column } from "../SearchResults/index"; | import SearchResults, { Column } from "../SearchResults/index"; | ||||
import EditNote from "@mui/icons-material/EditNote"; | import EditNote from "@mui/icons-material/EditNote"; | ||||
@@ -66,6 +66,10 @@ const TeamSearch: React.FC<Props> = ({ team }) => { | |||||
}, t); | }, t); | ||||
}, []); | }, []); | ||||
useEffect(() => { | |||||
setFilteredTeam(team) | |||||
}, [team]); | |||||
const columns = useMemo<Column<TeamResult>[]>( | const columns = useMemo<Column<TeamResult>[]>( | ||||
() => [ | () => [ | ||||
{ | { | ||||
@@ -1,7 +1,7 @@ | |||||
"use client"; | "use client"; | ||||
import SearchBox, { Criterion } from "../SearchBox"; | import SearchBox, { Criterion } from "../SearchBox"; | ||||
import { useCallback, useMemo, useState } from "react"; | |||||
import { useCallback, useEffect, useMemo, useState } from "react"; | |||||
import { useTranslation } from "react-i18next"; | import { useTranslation } from "react-i18next"; | ||||
import SearchResults, { Column } from "../SearchResults/index"; | import SearchResults, { Column } from "../SearchResults/index"; | ||||
import EditNote from "@mui/icons-material/EditNote"; | import EditNote from "@mui/icons-material/EditNote"; | ||||
@@ -9,7 +9,6 @@ import DeleteIcon from "@mui/icons-material/Delete"; | |||||
import { useRouter } from "next/navigation"; | import { useRouter } from "next/navigation"; | ||||
import { deleteDialog, successDialog } from "../Swal/CustomAlerts"; | import { deleteDialog, successDialog } from "../Swal/CustomAlerts"; | ||||
import { UserGroupResult } from "@/app/api/group"; | import { UserGroupResult } from "@/app/api/group"; | ||||
import { deleteUser } from "@/app/api/user/actions"; | |||||
import { deleteGroup } from "@/app/api/group/actions"; | import { deleteGroup } from "@/app/api/group/actions"; | ||||
interface Props { | interface Props { | ||||
@@ -41,7 +40,6 @@ const UserGroupSearch: React.FC<Props> = ({ groups }) => { | |||||
const onUserClick = useCallback( | const onUserClick = useCallback( | ||||
(group: UserGroupResult) => { | (group: UserGroupResult) => { | ||||
console.log(group); | |||||
router.push(`/settings/group/edit?id=${group.id}`) | router.push(`/settings/group/edit?id=${group.id}`) | ||||
}, | }, | ||||
[router, t] | [router, t] | ||||
@@ -51,11 +49,14 @@ const UserGroupSearch: React.FC<Props> = ({ groups }) => { | |||||
deleteDialog(async () => { | deleteDialog(async () => { | ||||
await deleteGroup(group.id); | await deleteGroup(group.id); | ||||
successDialog(t("Delete Success"), t); | successDialog(t("Delete Success"), t); | ||||
setFilteredGroups((prev) => prev.filter((obj) => obj.id !== group.id)); | |||||
}, t); | }, t); | ||||
}, []); | }, []); | ||||
useEffect(() => { | |||||
setFilteredGroups(groups) | |||||
}, [groups]); | |||||
const columns = useMemo<Column<UserGroupResult>[]>( | const columns = useMemo<Column<UserGroupResult>[]>( | ||||
() => [ | () => [ | ||||
{ | { | ||||
@@ -1,6 +1,6 @@ | |||||
import React from "react"; | import React from "react"; | ||||
import UserGroupSearchLoading from "./UserGroupSearchLoading"; | import UserGroupSearchLoading from "./UserGroupSearchLoading"; | ||||
import { UserGroupResult, fetchGroup } from "@/app/api/group"; | |||||
import { fetchGroup } from "@/app/api/group"; | |||||
import UserGroupSearch from "./UserGroupSearch"; | import UserGroupSearch from "./UserGroupSearch"; | ||||
interface SubComponents { | interface SubComponents { | ||||
@@ -9,6 +9,7 @@ interface SubComponents { | |||||
const UserGroupSearchWrapper: React.FC & SubComponents = async () => { | const UserGroupSearchWrapper: React.FC & SubComponents = async () => { | ||||
const group = await fetchGroup() | const group = await fetchGroup() | ||||
console.log(group) | |||||
return <UserGroupSearch groups={group.records} />; | return <UserGroupSearch groups={group.records} />; | ||||
}; | }; | ||||