mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
@@ -27,7 +27,12 @@ export function UserGroupProvider({ children }) {
|
||||
return await fn();
|
||||
} catch (err) {
|
||||
const message = err?.response?.data?.message ?? "Something went wrong.";
|
||||
toast.error(message);
|
||||
toast(message, {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
return null;
|
||||
} finally {
|
||||
setLoading(false);
|
||||
@@ -121,7 +126,12 @@ export function UserGroupProvider({ children }) {
|
||||
request(async () => {
|
||||
const res = await api.post(`${BASE}/groups`, { name, description, group_code });
|
||||
setGroups((prev) => [res.data?.data, ...prev]);
|
||||
toast.success("Group created successfully.");
|
||||
toast("Group created successfully.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
@@ -136,7 +146,12 @@ export function UserGroupProvider({ children }) {
|
||||
prev.map((g) => (g.group_id === gid ? { ...g, ...res.data?.data } : g))
|
||||
);
|
||||
setGroup((prev) => (prev?.group_id === gid ? { ...prev, ...res.data?.data } : prev));
|
||||
toast.success("Group updated successfully.");
|
||||
toast("Group updated successfully.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
@@ -150,7 +165,12 @@ export function UserGroupProvider({ children }) {
|
||||
setGroups((prev) =>
|
||||
prev.map((g) => (g.group_id === gid ? { ...g, is_active: false } : g))
|
||||
);
|
||||
toast.success("Group deactivated.");
|
||||
toast("Group deactivated.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
@@ -168,7 +188,12 @@ export function UserGroupProvider({ children }) {
|
||||
deactivated_ids.includes(g.group_id) ? { ...g, is_active: false } : g
|
||||
)
|
||||
);
|
||||
toast.success(`${deactivated_ids.length} group(s) deactivated.`);
|
||||
toast(`${deactivated_ids.length} group(s) deactivated.`, {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
}
|
||||
return res.data;
|
||||
}),
|
||||
@@ -183,7 +208,12 @@ export function UserGroupProvider({ children }) {
|
||||
setGroups((prev) =>
|
||||
prev.map((g) => (g.group_id === gid ? { ...g, is_active: true } : g))
|
||||
);
|
||||
toast.success("Group restored.");
|
||||
toast("Group restored.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
@@ -201,7 +231,12 @@ export function UserGroupProvider({ children }) {
|
||||
restored_ids.includes(g.group_id) ? { ...g, is_active: true } : g
|
||||
)
|
||||
);
|
||||
toast.success(`${restored_ids.length} group(s) restored.`);
|
||||
toast(`${restored_ids.length} group(s) restored.`, {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
}
|
||||
return res.data;
|
||||
}),
|
||||
@@ -214,7 +249,12 @@ export function UserGroupProvider({ children }) {
|
||||
request(async () => {
|
||||
const res = await api.delete(`${BASE}/groups/${gid}/permanent`);
|
||||
setGroups((prev) => prev.filter((g) => g.group_id !== gid));
|
||||
toast.success("Group permanently deleted.");
|
||||
toast("Group permanently deleted.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
@@ -228,7 +268,12 @@ export function UserGroupProvider({ children }) {
|
||||
const { deleted_ids } = res.data?.data ?? {};
|
||||
if (deleted_ids?.length) {
|
||||
setGroups((prev) => prev.filter((g) => !deleted_ids.includes(g.group_id)));
|
||||
toast.success(`${deleted_ids.length} group(s) permanently deleted.`);
|
||||
toast(`${deleted_ids.length} group(s) permanently deleted.`, {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
}
|
||||
return res.data;
|
||||
}),
|
||||
@@ -241,7 +286,12 @@ export function UserGroupProvider({ children }) {
|
||||
request(async () => {
|
||||
const res = await api.post(`${BASE}/groups/${gid}/users`, { user_ids });
|
||||
setUsersNotIn((prev) => prev.filter((u) => !user_ids.includes(u.user_id)));
|
||||
toast.success("Users added to group.");
|
||||
toast("Users added to group.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
@@ -254,7 +304,12 @@ export function UserGroupProvider({ children }) {
|
||||
const res = await api.delete(`${BASE}/groups/${gid}/users`, { data: { user_ids } });
|
||||
setMembers((prev) => prev.filter((u) => !user_ids.includes(u.user_id)));
|
||||
setUsersIn((prev) => prev.filter((u) => !user_ids.includes(u.user_id)));
|
||||
toast.success("Users removed from group.");
|
||||
toast("Users removed from group.", {
|
||||
action: {
|
||||
label: "Close",
|
||||
onClick: () => {}
|
||||
}
|
||||
});
|
||||
return res.data;
|
||||
}),
|
||||
[request]
|
||||
|
||||
Reference in New Issue
Block a user