Skip to content

Commit f323972

Browse files
fix: update views outside of setter (revert 814c4eb
)
1 parent 16b6dd8 commit f323972

File tree

4 files changed

+38
-5
lines changed

4 files changed

+38
-5
lines changed

src/components/dash/groups/GroupControls.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
3333
if (dash.settings.display?.keepOpen && list.settings.view.type === ViewType.COLLAPSE) {
3434
list.settings.viewType = ViewType.OPEN
35+
list.settings.changeView()
3536
}
3637
3738
let filterGroups = $state(list.filters)
@@ -85,6 +86,9 @@
8586
class="input input-sm input-bordered join-item flex-1"
8687
id="member-list-view"
8788
bind:value={list.settings.viewType}
89+
onchange={() => {
90+
list.settings.changeView()
91+
}}
8892
>
8993
<option value={dash.settings.display?.keepOpen === true ? ViewType.OPEN : ViewType.COLLAPSE}
9094
>List</option

src/components/dash/members/MemberControls.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
3333
if (dash.settings.display?.keepOpen && list.settings.view.type === ViewType.COLLAPSE) {
3434
list.settings.viewType = ViewType.OPEN
35+
list.settings.changeView()
3536
}
3637
3738
let filterGroups = $state(list.filters)
@@ -85,6 +86,9 @@
8586
class="input input-sm input-bordered join-item flex-1"
8687
id="member-list-view"
8788
bind:value={list.settings.viewType}
89+
onchange={() => {
90+
list.settings.changeView()
91+
}}
8892
>
8993
<option value={dash.settings.display?.keepOpen === true ? ViewType.OPEN : ViewType.COLLAPSE}
9094
>List</option

src/lib/dash/dash.svelte.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ function createMemberListState(data: any): DashList<Member> {
151151
sorts = data?.view.m[1]
152152
if (data?.view.m.length > 2) {
153153
listSettings.viewType = data?.view.m[2]
154+
listSettings.changeView()
154155
}
155156
listSettings.filterMode = "advanced"
156157
}
@@ -235,6 +236,7 @@ function createGroupListState(data: any): DashList<Group> {
235236
sorts = data?.view.g[1]
236237
if (data?.view.g.length > 2) {
237238
listSettings.viewType = data?.view.g[2]
239+
listSettings.changeView()
238240
}
239241
listSettings.filterMode = "advanced"
240242
}

src/lib/dash/settings.svelte.ts

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interface View {
1515
defaultItemsPerPage: number
1616
}
1717

18-
const availableViews: View[] = [
18+
let availableViews: View[] = [
1919
{
2020
type: ViewType.COLLAPSE,
2121
itemsPerPageSelection: [10, 25, 50],
@@ -51,6 +51,7 @@ const availableViews: View[] = [
5151
export interface ListSettings {
5252
readonly view: View
5353
viewType: ViewType
54+
changeView: () => void
5455
itemsPerPage: number
5556
currentPage: number
5657
filterMode: "simple" | "advanced"
@@ -79,13 +80,35 @@ export function createListSettings(): ListSettings {
7980
},
8081
set viewType(type: ViewType) {
8182
viewType = type
83+
},
84+
changeView: () => {
8285
itemsPerPage = view.defaultItemsPerPage
8386
currentPage = 1
8487
},
85-
itemsPerPage,
86-
currentPage,
87-
filterMode,
88-
extraFields,
88+
get itemsPerPage() {
89+
return itemsPerPage
90+
},
91+
set itemsPerPage(ipp: number) {
92+
itemsPerPage = ipp
93+
},
94+
get currentPage() {
95+
return currentPage
96+
},
97+
set currentPage(page: number) {
98+
currentPage = page
99+
},
100+
get filterMode() {
101+
return filterMode
102+
},
103+
set filterMode(mode: "simple" | "advanced") {
104+
filterMode = mode
105+
},
106+
get extraFields() {
107+
return extraFields
108+
},
109+
set extraFields(open: boolean) {
110+
extraFields = open
111+
},
89112
}
90113
}
91114

0 commit comments

Comments
 (0)