refac
This commit is contained in:
1 parent
11db926a7b
commit
18bf0ade7b
4 files changed
+22
-5
No files matched your search
@@ -59,6 +59,11 @@
|
|||||||
adminGroupCount.set(groups.length);
|
adminGroupCount.set(groups.length);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** @param {any} updatedGroup */
|
||||||
|
const updateGroup = (updatedGroup) => {
|
||||||
|
groups = groups.map((group) => (group.id === updatedGroup.id ? updatedGroup : group));
|
||||||
|
};
|
||||||
|
|
||||||
/** @param {any} group */
|
/** @param {any} group */
|
||||||
const addGroupHandler = async (group) => {
|
const addGroupHandler = async (group) => {
|
||||||
const res = await createNewGroup(localStorage.token, group).catch((error) => {
|
const res = await createNewGroup(localStorage.token, group).catch((error) => {
|
||||||
@@ -177,7 +182,7 @@
|
|||||||
{#if filteredGroups.length !== 0}
|
{#if filteredGroups.length !== 0}
|
||||||
<div class="mt-1 grid grid-cols-1">
|
<div class="mt-1 grid grid-cols-1">
|
||||||
{#each filteredGroups as group, idx (group.id)}
|
{#each filteredGroups as group, idx (group.id)}
|
||||||
<GroupItem {group} {setGroups} {defaultPermissions} />
|
<GroupItem {group} {setGroups} {updateGroup} {defaultPermissions} />
|
||||||
{#if idx < filteredGroups.length - 1}
|
{#if idx < filteredGroups.length - 1}
|
||||||
<hr class="border-gray-50 dark:border-gray-850/40" />
|
<hr class="border-gray-50 dark:border-gray-850/40" />
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
export let onSubmit: Function = () => {};
|
export let onSubmit: Function = () => {};
|
||||||
export let onDelete: Function = () => {};
|
export let onDelete: Function = () => {};
|
||||||
|
export let onMemberChange: Function = () => {};
|
||||||
|
|
||||||
export let show = false;
|
export let show = false;
|
||||||
export let edit = false;
|
export let edit = false;
|
||||||
@@ -280,7 +281,7 @@
|
|||||||
{:else if selectedTab == 'permissions'}
|
{:else if selectedTab == 'permissions'}
|
||||||
<Permissions bind:permissions {defaultPermissions} />
|
<Permissions bind:permissions {defaultPermissions} />
|
||||||
{:else if selectedTab == 'users'}
|
{:else if selectedTab == 'users'}
|
||||||
<Users bind:userCount groupId={group?.id} />
|
<Users bind:userCount groupId={group?.id} {onMemberChange} />
|
||||||
{:else if selectedTab == 'preview'}
|
{:else if selectedTab == 'preview'}
|
||||||
<GroupPreviewPanel groupId={group?.id} />
|
<GroupPreviewPanel groupId={group?.id} />
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@
|
|||||||
export let defaultPermissions = {};
|
export let defaultPermissions = {};
|
||||||
|
|
||||||
export let setGroups = () => {};
|
export let setGroups = () => {};
|
||||||
|
/** @type {(group: any) => void} */
|
||||||
|
export let updateGroup = () => {};
|
||||||
|
|
||||||
let showEdit = false;
|
let showEdit = false;
|
||||||
$: hasCustomPermissions = Object.keys(group?.permissions ?? {}).length > 0;
|
$: hasCustomPermissions = Object.keys(group?.permissions ?? {}).length > 0;
|
||||||
@@ -64,6 +66,7 @@
|
|||||||
tabs={['general', 'permissions', 'users', 'preview']}
|
tabs={['general', 'permissions', 'users', 'preview']}
|
||||||
onSubmit={updateHandler}
|
onSubmit={updateHandler}
|
||||||
onDelete={deleteHandler}
|
onDelete={deleteHandler}
|
||||||
|
onMemberChange={updateGroup}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
export let groupId: string;
|
export let groupId: string;
|
||||||
export let userCount = 0;
|
export let userCount = 0;
|
||||||
|
export let onMemberChange: Function = () => {};
|
||||||
|
|
||||||
let users = null;
|
let users = null;
|
||||||
let total = null;
|
let total = null;
|
||||||
@@ -74,19 +75,26 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
const toggleMember = async (userId, state) => {
|
const toggleMember = async (userId, state) => {
|
||||||
|
let res = null;
|
||||||
|
|
||||||
if (state === 'checked') {
|
if (state === 'checked') {
|
||||||
await addUserToGroup(localStorage.token, groupId, [userId]).catch((error) => {
|
res = await addUserToGroup(localStorage.token, groupId, [userId]).catch((error) => {
|
||||||
toast.error(`${error}`);
|
toast.error(`${error}`);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
await removeUserFromGroup(localStorage.token, groupId, [userId]).catch((error) => {
|
res = await removeUserFromGroup(localStorage.token, groupId, [userId]).catch((error) => {
|
||||||
toast.error(`${error}`);
|
toast.error(`${error}`);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getUserList();
|
if (res) {
|
||||||
|
userCount = res.member_count ?? userCount;
|
||||||
|
onMemberChange(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
await getUserList();
|
||||||
};
|
};
|
||||||
|
|
||||||
$: if (page !== null && orderBy !== null && direction !== null) {
|
$: if (page !== null && orderBy !== null && direction !== null) {
|
||||||
|
|||||||
Reference in new issue
Block a user