From ccb1ab7739fbeb77c810036dcac240570034a56a Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 15 Jul 2026 01:31:21 -0400 Subject: [PATCH] refac --- src/lib/components/admin/Users/Groups.svelte | 84 ++++--------------- .../admin/Users/Groups/GroupItem.svelte | 60 +++++++++---- .../chat/Settings/ArchivedChats.svelte | 32 +------ src/lib/components/icons/Trash.svelte | 26 ++++++ src/lib/components/icons/UndoAction.svelte | 27 ++++++ 5 files changed, 115 insertions(+), 114 deletions(-) create mode 100644 src/lib/components/icons/Trash.svelte create mode 100644 src/lib/components/icons/UndoAction.svelte diff --git a/src/lib/components/admin/Users/Groups.svelte b/src/lib/components/admin/Users/Groups.svelte index 0440c9ac2c..e4fa98360d 100644 --- a/src/lib/components/admin/Users/Groups.svelte +++ b/src/lib/components/admin/Users/Groups.svelte @@ -6,15 +6,10 @@ import { user } from '$lib/stores'; import Plus from '$lib/components/icons/Plus.svelte'; - import UsersSolid from '$lib/components/icons/UsersSolid.svelte'; - import ChevronRight from '$lib/components/icons/ChevronRight.svelte'; import Search from '$lib/components/icons/Search.svelte'; import EditGroupModal from './Groups/EditGroupModal.svelte'; import GroupItem from './Groups/GroupItem.svelte'; import XMark from '$lib/components/icons/XMark.svelte'; - import ChevronDown from '$lib/components/icons/ChevronDown.svelte'; - import Check from '$lib/components/icons/Check.svelte'; - import Select from '$lib/components/common/Select.svelte'; import { createNewGroup, getGroups } from '$lib/apis/groups'; import { getUserDefaultPermissions, updateUserDefaultPermissions } from '$lib/apis/users'; @@ -25,12 +20,6 @@ let groups = []; let query = ''; - let sortBy = 'members'; - - const sortItems = [ - { value: 'name', label: $i18n.t('Name') }, - { value: 'members', label: $i18n.t('Members') } - ]; $: filteredGroups = groups .filter((group) => { @@ -43,12 +32,7 @@ } }) .sort((a, b) => { - if (sortBy === 'name') { - return a.name.localeCompare(b.name); - } else if (sortBy === 'members') { - return (b.member_count ?? 0) - (a.member_count ?? 0); - } - return 0; + return (b.member_count ?? 0) - (a.member_count ?? 0) || a.name.localeCompare(b.name); }); let defaultPermissions = {}; @@ -122,6 +106,18 @@
+ +
{/if} - - {#if filteredGroups.length !== 0} -
+
{#each filteredGroups as group} {/each} @@ -218,30 +188,4 @@ onSubmit={updateDefaultPermissionsHandler} /> {/if} - - {/if} diff --git a/src/lib/components/admin/Users/Groups/GroupItem.svelte b/src/lib/components/admin/Users/Groups/GroupItem.svelte index bb9a7aae85..2c977ca63b 100644 --- a/src/lib/components/admin/Users/Groups/GroupItem.svelte +++ b/src/lib/components/admin/Users/Groups/GroupItem.svelte @@ -19,6 +19,9 @@ export let setGroups = () => {}; let showEdit = false; + $: hasCustomPermissions = + group?.permissions && + Object.keys(group.permissions).some((key) => group.permissions[key] !== undefined); const updateHandler = async (_group) => { const res = await updateGroupById(localStorage.token, group.id, _group).catch((error) => { @@ -63,33 +66,58 @@ /> @@ -320,20 +309,7 @@ showDeleteConfirmDialog = true; }} > - - - +
diff --git a/src/lib/components/icons/Trash.svelte b/src/lib/components/icons/Trash.svelte new file mode 100644 index 0000000000..1dc84a1eee --- /dev/null +++ b/src/lib/components/icons/Trash.svelte @@ -0,0 +1,26 @@ + + + diff --git a/src/lib/components/icons/UndoAction.svelte b/src/lib/components/icons/UndoAction.svelte new file mode 100644 index 0000000000..72cb7f5b6d --- /dev/null +++ b/src/lib/components/icons/UndoAction.svelte @@ -0,0 +1,27 @@ + + +