From 36cc4f1ef745a027540050ad668db3bcdc08d4b2 Mon Sep 17 00:00:00 2001 From: Brandon Eng Date: Tue, 16 Jan 2024 22:41:46 +0700 Subject: Ability to archive groups when they’re settled up (#45) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Settled up icon on group card * remove logs * archived groups * remove settled up * remove more settled up * recent-group-list-card * sortGroups * archiveGroup * unarchiveGroup * clean up * more clean up * Prettier, fix TS errors, add titles --------- Co-authored-by: Sebastien Castiel --- src/app/groups/recent-groups-helpers.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/app/groups/recent-groups-helpers.ts') diff --git a/src/app/groups/recent-groups-helpers.ts b/src/app/groups/recent-groups-helpers.ts index 72c5d28..0d718e2 100644 --- a/src/app/groups/recent-groups-helpers.ts +++ b/src/app/groups/recent-groups-helpers.ts @@ -8,12 +8,14 @@ export const recentGroupsSchema = z.array( ) export const starredGroupsSchema = z.array(z.string()) +export const archivedGroupsSchema = z.array(z.string()) export type RecentGroups = z.infer export type RecentGroup = RecentGroups[number] const STORAGE_KEY = 'recentGroups' const STARRED_GROUPS_STORAGE_KEY = 'starredGroups' +const ARCHIVED_GROUPS_STORAGE_KEY = 'archivedGroups' export function getRecentGroups() { const groupsInStorageJson = localStorage.getItem(STORAGE_KEY) @@ -64,3 +66,28 @@ export function unstarGroup(groupId: string) { JSON.stringify(starredGroups.filter((g) => g !== groupId)), ) } + +export function getArchivedGroups() { + const archivedGroupsJson = localStorage.getItem(ARCHIVED_GROUPS_STORAGE_KEY) + const archivedGroupsRaw = archivedGroupsJson + ? JSON.parse(archivedGroupsJson) + : [] + const parseResult = archivedGroupsSchema.safeParse(archivedGroupsRaw) + return parseResult.success ? parseResult.data : [] +} + +export function archiveGroup(groupId: string) { + const archivedGroups = getArchivedGroups() + localStorage.setItem( + ARCHIVED_GROUPS_STORAGE_KEY, + JSON.stringify([...archivedGroups, groupId]), + ) +} + +export function unarchiveGroup(groupId: string) { + const archivedGroups = getArchivedGroups() + localStorage.setItem( + ARCHIVED_GROUPS_STORAGE_KEY, + JSON.stringify(archivedGroups.filter((g) => g !== groupId)), + ) +} -- cgit v1.3