@m5kdev/frontend 0.8.10 → 0.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/backend/dist/src/modules/auth/auth.dto.d.mts +6 -6
- package/dist/packages/backend/dist/src/modules/auth/auth.dto.d.mts.map +1 -1
- package/dist/packages/backend/dist/src/modules/auth/auth.dto.d.ts +6 -6
- package/dist/packages/backend/dist/src/modules/auth/auth.dto.d.ts.map +1 -1
- package/dist/packages/backend/dist/src/types.d.mts +17 -17
- package/dist/packages/backend/dist/src/types.d.mts.map +1 -1
- package/dist/packages/backend/dist/src/types.d.ts +17 -17
- package/dist/packages/backend/dist/src/types.d.ts.map +1 -1
- package/dist/src/modules/auth/components/AuthProvider.js +1 -1
- package/dist/src/modules/auth/components/AuthProvider.mjs +1 -1
- package/dist/src/modules/billing/components/BillingProvider.js +1 -1
- package/dist/src/modules/billing/components/BillingProvider.mjs +1 -1
- package/dist/src/modules/table/hooks/useNuqsQueryParams.d.mts +1 -1
- package/dist/src/modules/table/hooks/useNuqsQueryParams.d.mts.map +1 -1
- package/dist/src/modules/table/hooks/useNuqsQueryParams.d.ts +1 -1
- package/dist/src/modules/table/hooks/useNuqsQueryParams.d.ts.map +1 -1
- package/dist/src/modules/table/hooks/useNuqsQueryParams.js +100 -9
- package/dist/src/modules/table/hooks/useNuqsQueryParams.js.map +1 -1
- package/dist/src/modules/table/hooks/useNuqsQueryParams.mjs +101 -10
- package/dist/src/modules/table/hooks/useNuqsQueryParams.mjs.map +1 -1
- package/dist/src/modules/table/hooks/useQueryWithParams.js +1 -1
- package/dist/src/modules/table/hooks/useQueryWithParams.mjs +1 -1
- package/package.json +4 -4
|
@@ -13,11 +13,11 @@ declare const waitlistSchema: z.ZodObject<{
|
|
|
13
13
|
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
declare const waitlistOutputSchema: z.ZodObject<{
|
|
16
|
-
id: z.ZodString;
|
|
17
16
|
name: z.ZodNullable<z.ZodString>;
|
|
17
|
+
id: z.ZodString;
|
|
18
|
+
email: z.ZodNullable<z.ZodString>;
|
|
18
19
|
createdAt: z.ZodDate;
|
|
19
20
|
updatedAt: z.ZodNullable<z.ZodDate>;
|
|
20
|
-
email: z.ZodNullable<z.ZodString>;
|
|
21
21
|
status: z.ZodString;
|
|
22
22
|
}, z.core.$strip>;
|
|
23
23
|
type WaitlistOutput = z.infer<typeof waitlistOutputSchema>;
|
|
@@ -35,10 +35,10 @@ declare const accountClaimSchema: z.ZodObject<{
|
|
|
35
35
|
}, z.core.$strip>;
|
|
36
36
|
declare const accountClaimOutputSchema: z.ZodObject<{
|
|
37
37
|
id: z.ZodString;
|
|
38
|
-
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
39
38
|
createdAt: z.ZodDate;
|
|
40
39
|
updatedAt: z.ZodNullable<z.ZodDate>;
|
|
41
40
|
status: z.ZodString;
|
|
41
|
+
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
42
42
|
claimUserId: z.ZodNullable<z.ZodString>;
|
|
43
43
|
claimedAt: z.ZodNullable<z.ZodDate>;
|
|
44
44
|
claimedEmail: z.ZodNullable<z.ZodString>;
|
|
@@ -57,10 +57,10 @@ declare const accountClaimMagicLinkSchema: z.ZodObject<{
|
|
|
57
57
|
}, z.core.$strip>;
|
|
58
58
|
declare const accountClaimMagicLinkOutputSchema: z.ZodObject<{
|
|
59
59
|
id: z.ZodString;
|
|
60
|
-
userId: z.ZodString;
|
|
61
|
-
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
62
|
-
createdAt: z.ZodDate;
|
|
63
60
|
email: z.ZodString;
|
|
61
|
+
createdAt: z.ZodDate;
|
|
62
|
+
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
63
|
+
userId: z.ZodString;
|
|
64
64
|
claimId: z.ZodString;
|
|
65
65
|
url: z.ZodString;
|
|
66
66
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.dto.d.mts","names":["z","waitlistSchema","ZodString","ZodNullable","ZodDate","core","$strip","ZodObject","id","name","email","createdAt","updatedAt","status","code","expiresAt","waitlistOutputSchema","WaitlistOutput","infer","Waitlist","accountClaimSchema","claimUserId","claimedAt","claimedEmail","accountClaimOutputSchema","AccountClaim","AccountClaimOutput","accountClaimMagicLinkSchema","claimId","userId","token","url","accountClaimMagicLinkOutputSchema","AccountClaimMagicLink","AccountClaimMagicLinkOutput"],"sources":["../../../../../../../../backend/dist/src/modules/auth/auth.dto.d.mts"],"mappings":";;;;cAGcC,cAAAA,EAAgBD,CAAAA,CAAEO,SAAAA;EAC9BC,EAAAA,EAAIR,CAAAA,CAAEE,SAAAA;EACNO,IAAAA,EAAMT,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEE,SAAAA;EACtBQ,KAAAA,EAAOV,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEE,SAAAA;EACvBS,SAAAA,EAAWX,CAAAA,CAAEI,OAAAA;EACbQ,SAAAA,EAAWZ,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEI,OAAAA;EAC3BS,MAAAA,EAAQb,CAAAA,CAAEE,SAAAA;EACVY,IAAAA,EAAMd,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEE,SAAAA;EACtBa,SAAAA,EAAWf,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEI,OAAAA;AAAAA,GAC1BJ,CAAAA,CAAEK,IAAAA,CAAKC,MAAAA;AAAAA,cACIU,oBAAAA,EAAsBhB,CAAAA,CAAEO,SAAAA;
|
|
1
|
+
{"version":3,"file":"auth.dto.d.mts","names":["z","waitlistSchema","ZodString","ZodNullable","ZodDate","core","$strip","ZodObject","id","name","email","createdAt","updatedAt","status","code","expiresAt","waitlistOutputSchema","WaitlistOutput","infer","Waitlist","accountClaimSchema","claimUserId","claimedAt","claimedEmail","accountClaimOutputSchema","AccountClaim","AccountClaimOutput","accountClaimMagicLinkSchema","claimId","userId","token","url","accountClaimMagicLinkOutputSchema","AccountClaimMagicLink","AccountClaimMagicLinkOutput"],"sources":["../../../../../../../../backend/dist/src/modules/auth/auth.dto.d.mts"],"mappings":"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"}
|
|
@@ -13,11 +13,11 @@ declare const waitlistSchema: z.ZodObject<{
|
|
|
13
13
|
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
declare const waitlistOutputSchema: z.ZodObject<{
|
|
16
|
-
id: z.ZodString;
|
|
17
16
|
name: z.ZodNullable<z.ZodString>;
|
|
17
|
+
id: z.ZodString;
|
|
18
|
+
email: z.ZodNullable<z.ZodString>;
|
|
18
19
|
createdAt: z.ZodDate;
|
|
19
20
|
updatedAt: z.ZodNullable<z.ZodDate>;
|
|
20
|
-
email: z.ZodNullable<z.ZodString>;
|
|
21
21
|
status: z.ZodString;
|
|
22
22
|
}, z.core.$strip>;
|
|
23
23
|
type WaitlistOutput = z.infer<typeof waitlistOutputSchema>;
|
|
@@ -35,10 +35,10 @@ declare const accountClaimSchema: z.ZodObject<{
|
|
|
35
35
|
}, z.core.$strip>;
|
|
36
36
|
declare const accountClaimOutputSchema: z.ZodObject<{
|
|
37
37
|
id: z.ZodString;
|
|
38
|
-
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
39
38
|
createdAt: z.ZodDate;
|
|
40
39
|
updatedAt: z.ZodNullable<z.ZodDate>;
|
|
41
40
|
status: z.ZodString;
|
|
41
|
+
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
42
42
|
claimUserId: z.ZodNullable<z.ZodString>;
|
|
43
43
|
claimedAt: z.ZodNullable<z.ZodDate>;
|
|
44
44
|
claimedEmail: z.ZodNullable<z.ZodString>;
|
|
@@ -57,10 +57,10 @@ declare const accountClaimMagicLinkSchema: z.ZodObject<{
|
|
|
57
57
|
}, z.core.$strip>;
|
|
58
58
|
declare const accountClaimMagicLinkOutputSchema: z.ZodObject<{
|
|
59
59
|
id: z.ZodString;
|
|
60
|
-
userId: z.ZodString;
|
|
61
|
-
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
62
|
-
createdAt: z.ZodDate;
|
|
63
60
|
email: z.ZodString;
|
|
61
|
+
createdAt: z.ZodDate;
|
|
62
|
+
expiresAt: z.ZodNullable<z.ZodDate>;
|
|
63
|
+
userId: z.ZodString;
|
|
64
64
|
claimId: z.ZodString;
|
|
65
65
|
url: z.ZodString;
|
|
66
66
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.dto.d.ts","names":["z","waitlistSchema","ZodString","ZodNullable","ZodDate","core","$strip","ZodObject","id","name","email","createdAt","updatedAt","status","code","expiresAt","waitlistOutputSchema","WaitlistOutput","infer","Waitlist","accountClaimSchema","claimUserId","claimedAt","claimedEmail","accountClaimOutputSchema","AccountClaim","AccountClaimOutput","accountClaimMagicLinkSchema","claimId","userId","token","url","accountClaimMagicLinkOutputSchema","AccountClaimMagicLink","AccountClaimMagicLinkOutput"],"sources":["../../../../../../../../backend/dist/src/modules/auth/auth.dto.d.mts"],"mappings":";;;;cAGcC,cAAAA,EAAgBD,CAAAA,CAAEO,SAAAA;EAC9BC,EAAAA,EAAIR,CAAAA,CAAEE,SAAAA;EACNO,IAAAA,EAAMT,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEE,SAAAA;EACtBQ,KAAAA,EAAOV,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEE,SAAAA;EACvBS,SAAAA,EAAWX,CAAAA,CAAEI,OAAAA;EACbQ,SAAAA,EAAWZ,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEI,OAAAA;EAC3BS,MAAAA,EAAQb,CAAAA,CAAEE,SAAAA;EACVY,IAAAA,EAAMd,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEE,SAAAA;EACtBa,SAAAA,EAAWf,CAAAA,CAAEG,WAAAA,CAAYH,CAAAA,CAAEI,OAAAA;AAAAA,GAC1BJ,CAAAA,CAAEK,IAAAA,CAAKC,MAAAA;AAAAA,cACIU,oBAAAA,EAAsBhB,CAAAA,CAAEO,SAAAA;
|
|
1
|
+
{"version":3,"file":"auth.dto.d.ts","names":["z","waitlistSchema","ZodString","ZodNullable","ZodDate","core","$strip","ZodObject","id","name","email","createdAt","updatedAt","status","code","expiresAt","waitlistOutputSchema","WaitlistOutput","infer","Waitlist","accountClaimSchema","claimUserId","claimedAt","claimedEmail","accountClaimOutputSchema","AccountClaim","AccountClaimOutput","accountClaimMagicLinkSchema","claimId","userId","token","url","accountClaimMagicLinkOutputSchema","AccountClaimMagicLink","AccountClaimMagicLinkOutput"],"sources":["../../../../../../../../backend/dist/src/modules/auth/auth.dto.d.mts"],"mappings":"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"}
|
|
@@ -60,10 +60,10 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
60
60
|
input: void;
|
|
61
61
|
output: {
|
|
62
62
|
id: string;
|
|
63
|
-
expiresAt: Date | null;
|
|
64
63
|
createdAt: Date;
|
|
65
64
|
updatedAt: Date | null;
|
|
66
65
|
status: string;
|
|
66
|
+
expiresAt: Date | null;
|
|
67
67
|
claimUserId: string | null;
|
|
68
68
|
claimedAt: Date | null;
|
|
69
69
|
claimedEmail: string | null;
|
|
@@ -77,10 +77,10 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
77
77
|
};
|
|
78
78
|
output: {
|
|
79
79
|
id: string;
|
|
80
|
-
userId: string;
|
|
81
|
-
expiresAt: Date | null;
|
|
82
|
-
createdAt: Date;
|
|
83
80
|
email: string;
|
|
81
|
+
createdAt: Date;
|
|
82
|
+
expiresAt: Date | null;
|
|
83
|
+
userId: string;
|
|
84
84
|
claimId: string;
|
|
85
85
|
url: string;
|
|
86
86
|
};
|
|
@@ -92,10 +92,10 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
92
92
|
};
|
|
93
93
|
output: {
|
|
94
94
|
id: string;
|
|
95
|
-
userId: string;
|
|
96
|
-
expiresAt: Date | null;
|
|
97
|
-
createdAt: Date;
|
|
98
95
|
email: string;
|
|
96
|
+
createdAt: Date;
|
|
97
|
+
expiresAt: Date | null;
|
|
98
|
+
userId: string;
|
|
99
99
|
claimId: string;
|
|
100
100
|
url: string;
|
|
101
101
|
}[];
|
|
@@ -149,11 +149,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
149
149
|
listAdminWaitlist: QueryProcedure<{
|
|
150
150
|
input: void;
|
|
151
151
|
output: {
|
|
152
|
-
id: string;
|
|
153
152
|
name: string | null;
|
|
153
|
+
id: string;
|
|
154
|
+
email: string | null;
|
|
154
155
|
createdAt: Date;
|
|
155
156
|
updatedAt: Date | null;
|
|
156
|
-
email: string | null;
|
|
157
157
|
status: string;
|
|
158
158
|
}[];
|
|
159
159
|
meta: any;
|
|
@@ -163,11 +163,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
163
163
|
email: string;
|
|
164
164
|
};
|
|
165
165
|
output: {
|
|
166
|
-
id: string;
|
|
167
166
|
name: string | null;
|
|
167
|
+
id: string;
|
|
168
|
+
email: string | null;
|
|
168
169
|
createdAt: Date;
|
|
169
170
|
updatedAt: Date | null;
|
|
170
|
-
email: string | null;
|
|
171
171
|
status: string;
|
|
172
172
|
};
|
|
173
173
|
meta: any;
|
|
@@ -194,11 +194,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
194
194
|
id: string;
|
|
195
195
|
};
|
|
196
196
|
output: {
|
|
197
|
-
id: string;
|
|
198
197
|
name: string | null;
|
|
198
|
+
id: string;
|
|
199
|
+
email: string | null;
|
|
199
200
|
createdAt: Date;
|
|
200
201
|
updatedAt: Date | null;
|
|
201
|
-
email: string | null;
|
|
202
202
|
status: string;
|
|
203
203
|
};
|
|
204
204
|
meta: any;
|
|
@@ -208,11 +208,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
208
208
|
id: string;
|
|
209
209
|
};
|
|
210
210
|
output: {
|
|
211
|
-
id: string;
|
|
212
211
|
name: string | null;
|
|
212
|
+
id: string;
|
|
213
|
+
email: string | null;
|
|
213
214
|
createdAt: Date;
|
|
214
215
|
updatedAt: Date | null;
|
|
215
|
-
email: string | null;
|
|
216
216
|
status: string;
|
|
217
217
|
};
|
|
218
218
|
meta: any;
|
|
@@ -222,11 +222,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
222
222
|
email: string;
|
|
223
223
|
};
|
|
224
224
|
output: {
|
|
225
|
-
id: string;
|
|
226
225
|
name: string | null;
|
|
226
|
+
id: string;
|
|
227
|
+
email: string | null;
|
|
227
228
|
createdAt: Date;
|
|
228
229
|
updatedAt: Date | null;
|
|
229
|
-
email: string | null;
|
|
230
230
|
status: string;
|
|
231
231
|
};
|
|
232
232
|
meta: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":["Context","TRPCMethods","BillingService","AuthService","_$_trpc_server0","_$stripe","createAuthTRPCRouter","TRPCDefaultErrorShape","TRPCQueryProcedure","Date","TRPCMutationProcedure","Record","TRPCDecorateCreateRouterOptions","TRPCBuiltRouter","Stripe","Invoice","trpcMethods","authService","billingService","ctx","meta","errorShape","transformer","auth","getUserWaitlistCount","input","output","createInvitationCode","name","id","email","createdAt","updatedAt","status","code","expiresAt","createAccountClaimCode","userId","expiresInHours","claimUserId","claimedAt","claimedEmail","listAccountClaims","generateAccountClaimMagicLink","claimId","url","listAccountClaimMagicLinks","getMyAccountClaimStatus","setMyAccountClaimEmail","acceptMyAccountClaim","listWaitlist","listAdminWaitlist","addToWaitlist","inviteToWaitlist","inviteFromWaitlist","removeFromWaitlist","joinWaitlist","getOnboarding","setOnboarding","getPreferences","setPreferences","getOrganizationPreferences","setOrganizationPreferences","getMetadata","setMetadata","getFlags","getOrganizationFlags","setFlags","setOrganizationFlags","validateWaitlistCode","billing","getActiveSubscription","plan","referenceId","stripeCustomerId","stripeSubscriptionId","periodStart","periodEnd","cancelAtPeriodEnd","cancelAt","canceledAt","seats","trialStart","trialEnd","priceId","interval","unitAmount","discounts","listInvoices","BackendTRPCRouter","ReturnType"],"sources":["../../../../../../backend/dist/src/types.d.mts"],"mappings":";;;;;;;cAOcM,oBAAAA,GAAuBU,WAAAA,EAAaf,WAAAA,EAAagB,WAAAA,EAAad,WAAAA,EAAae,cAAAA,EAAgBhB,cAAAA,KAAmBE,WAAAA;EAC1He,GAAAA,EAAKnB,OAAAA;EACLoB,IAAAA;EACAC,UAAAA,EAAYjB,iBAAAA;EACZkB,WAAAA;AAAAA,GACClB,2BAAAA;EACDmB,IAAAA,EAAMnB,WAAAA;IACJe,GAAAA,EAAKnB,OAAAA;IACLoB,IAAAA;IACAC,UAAAA,EAAYjB,iBAAAA;IACZkB,WAAAA;EAAAA,GACClB,2BAAAA;IACDoB,oBAAAA,EAAsBpB,cAAAA;MACpBqB,KAAAA;MACAC,MAAAA;MACAN,IAAAA;IAAAA;IAEFO,oBAAAA,EAAsBvB,iBAAAA;MACpBqB,KAAAA;QACEG,IAAAA;MAAAA;MAEFF,MAAAA;QACEG,EAAAA;QACAD,IAAAA;QACAE,KAAAA;QACAC,SAAAA,EAAWtB,IAAAA;QACXuB,SAAAA,EAAWvB,IAAAA;QACXwB,MAAAA;QACAC,IAAAA;QACAC,SAAAA,EAAW1B,IAAAA;MAAAA;MAEbW,IAAAA;IAAAA;IAEFgB,sBAAAA,EAAwBhC,iBAAAA;MACtBqB,KAAAA;QACEY,MAAAA;QACAC,cAAAA;MAAAA;MAEFZ,MAAAA;QACEG,EAAAA;QACAU,WAAAA;QACAL,IAAAA;QACAD,MAAAA;QACAE,SAAAA,EAAW1B,IAAAA;QACX+B,SAAAA,EAAW/B,IAAAA;QACXgC,YAAAA;QACAV,SAAAA,EAAWtB,IAAAA;QACXuB,SAAAA,EAAWvB,IAAAA;MAAAA;MAEbW,IAAAA;IAAAA;IAEFsB,iBAAAA,EAAmBtC,cAAAA;MACjBqB,KAAAA;MACAC,MAAAA;QACEG,EAAAA;
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":["Context","TRPCMethods","BillingService","AuthService","_$_trpc_server0","_$stripe","createAuthTRPCRouter","TRPCDefaultErrorShape","TRPCQueryProcedure","Date","TRPCMutationProcedure","Record","TRPCDecorateCreateRouterOptions","TRPCBuiltRouter","Stripe","Invoice","trpcMethods","authService","billingService","ctx","meta","errorShape","transformer","auth","getUserWaitlistCount","input","output","createInvitationCode","name","id","email","createdAt","updatedAt","status","code","expiresAt","createAccountClaimCode","userId","expiresInHours","claimUserId","claimedAt","claimedEmail","listAccountClaims","generateAccountClaimMagicLink","claimId","url","listAccountClaimMagicLinks","getMyAccountClaimStatus","setMyAccountClaimEmail","acceptMyAccountClaim","listWaitlist","listAdminWaitlist","addToWaitlist","inviteToWaitlist","inviteFromWaitlist","removeFromWaitlist","joinWaitlist","getOnboarding","setOnboarding","getPreferences","setPreferences","getOrganizationPreferences","setOrganizationPreferences","getMetadata","setMetadata","getFlags","getOrganizationFlags","setFlags","setOrganizationFlags","validateWaitlistCode","billing","getActiveSubscription","plan","referenceId","stripeCustomerId","stripeSubscriptionId","periodStart","periodEnd","cancelAtPeriodEnd","cancelAt","canceledAt","seats","trialStart","trialEnd","priceId","interval","unitAmount","discounts","listInvoices","BackendTRPCRouter","ReturnType"],"sources":["../../../../../../backend/dist/src/types.d.mts"],"mappings":"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"}
|
|
@@ -60,10 +60,10 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
60
60
|
input: void;
|
|
61
61
|
output: {
|
|
62
62
|
id: string;
|
|
63
|
-
expiresAt: Date | null;
|
|
64
63
|
createdAt: Date;
|
|
65
64
|
updatedAt: Date | null;
|
|
66
65
|
status: string;
|
|
66
|
+
expiresAt: Date | null;
|
|
67
67
|
claimUserId: string | null;
|
|
68
68
|
claimedAt: Date | null;
|
|
69
69
|
claimedEmail: string | null;
|
|
@@ -77,10 +77,10 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
77
77
|
};
|
|
78
78
|
output: {
|
|
79
79
|
id: string;
|
|
80
|
-
userId: string;
|
|
81
|
-
expiresAt: Date | null;
|
|
82
|
-
createdAt: Date;
|
|
83
80
|
email: string;
|
|
81
|
+
createdAt: Date;
|
|
82
|
+
expiresAt: Date | null;
|
|
83
|
+
userId: string;
|
|
84
84
|
claimId: string;
|
|
85
85
|
url: string;
|
|
86
86
|
};
|
|
@@ -92,10 +92,10 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
92
92
|
};
|
|
93
93
|
output: {
|
|
94
94
|
id: string;
|
|
95
|
-
userId: string;
|
|
96
|
-
expiresAt: Date | null;
|
|
97
|
-
createdAt: Date;
|
|
98
95
|
email: string;
|
|
96
|
+
createdAt: Date;
|
|
97
|
+
expiresAt: Date | null;
|
|
98
|
+
userId: string;
|
|
99
99
|
claimId: string;
|
|
100
100
|
url: string;
|
|
101
101
|
}[];
|
|
@@ -149,11 +149,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
149
149
|
listAdminWaitlist: QueryProcedure<{
|
|
150
150
|
input: void;
|
|
151
151
|
output: {
|
|
152
|
-
id: string;
|
|
153
152
|
name: string | null;
|
|
153
|
+
id: string;
|
|
154
|
+
email: string | null;
|
|
154
155
|
createdAt: Date;
|
|
155
156
|
updatedAt: Date | null;
|
|
156
|
-
email: string | null;
|
|
157
157
|
status: string;
|
|
158
158
|
}[];
|
|
159
159
|
meta: any;
|
|
@@ -163,11 +163,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
163
163
|
email: string;
|
|
164
164
|
};
|
|
165
165
|
output: {
|
|
166
|
-
id: string;
|
|
167
166
|
name: string | null;
|
|
167
|
+
id: string;
|
|
168
|
+
email: string | null;
|
|
168
169
|
createdAt: Date;
|
|
169
170
|
updatedAt: Date | null;
|
|
170
|
-
email: string | null;
|
|
171
171
|
status: string;
|
|
172
172
|
};
|
|
173
173
|
meta: any;
|
|
@@ -194,11 +194,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
194
194
|
id: string;
|
|
195
195
|
};
|
|
196
196
|
output: {
|
|
197
|
-
id: string;
|
|
198
197
|
name: string | null;
|
|
198
|
+
id: string;
|
|
199
|
+
email: string | null;
|
|
199
200
|
createdAt: Date;
|
|
200
201
|
updatedAt: Date | null;
|
|
201
|
-
email: string | null;
|
|
202
202
|
status: string;
|
|
203
203
|
};
|
|
204
204
|
meta: any;
|
|
@@ -208,11 +208,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
208
208
|
id: string;
|
|
209
209
|
};
|
|
210
210
|
output: {
|
|
211
|
-
id: string;
|
|
212
211
|
name: string | null;
|
|
212
|
+
id: string;
|
|
213
|
+
email: string | null;
|
|
213
214
|
createdAt: Date;
|
|
214
215
|
updatedAt: Date | null;
|
|
215
|
-
email: string | null;
|
|
216
216
|
status: string;
|
|
217
217
|
};
|
|
218
218
|
meta: any;
|
|
@@ -222,11 +222,11 @@ declare const createAuthTRPCRouter: (trpcMethods: TRPCMethods, authService: Auth
|
|
|
222
222
|
email: string;
|
|
223
223
|
};
|
|
224
224
|
output: {
|
|
225
|
-
id: string;
|
|
226
225
|
name: string | null;
|
|
226
|
+
id: string;
|
|
227
|
+
email: string | null;
|
|
227
228
|
createdAt: Date;
|
|
228
229
|
updatedAt: Date | null;
|
|
229
|
-
email: string | null;
|
|
230
230
|
status: string;
|
|
231
231
|
};
|
|
232
232
|
meta: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":["Context","TRPCMethods","BillingService","AuthService","_$_trpc_server0","_$stripe","createAuthTRPCRouter","TRPCDefaultErrorShape","TRPCQueryProcedure","Date","TRPCMutationProcedure","Record","TRPCDecorateCreateRouterOptions","TRPCBuiltRouter","Stripe","Invoice","trpcMethods","authService","billingService","ctx","meta","errorShape","transformer","auth","getUserWaitlistCount","input","output","createInvitationCode","name","id","email","createdAt","updatedAt","status","code","expiresAt","createAccountClaimCode","userId","expiresInHours","claimUserId","claimedAt","claimedEmail","listAccountClaims","generateAccountClaimMagicLink","claimId","url","listAccountClaimMagicLinks","getMyAccountClaimStatus","setMyAccountClaimEmail","acceptMyAccountClaim","listWaitlist","listAdminWaitlist","addToWaitlist","inviteToWaitlist","inviteFromWaitlist","removeFromWaitlist","joinWaitlist","getOnboarding","setOnboarding","getPreferences","setPreferences","getOrganizationPreferences","setOrganizationPreferences","getMetadata","setMetadata","getFlags","getOrganizationFlags","setFlags","setOrganizationFlags","validateWaitlistCode","billing","getActiveSubscription","plan","referenceId","stripeCustomerId","stripeSubscriptionId","periodStart","periodEnd","cancelAtPeriodEnd","cancelAt","canceledAt","seats","trialStart","trialEnd","priceId","interval","unitAmount","discounts","listInvoices","BackendTRPCRouter","ReturnType"],"sources":["../../../../../../backend/dist/src/types.d.mts"],"mappings":";;;;;;;cAOcM,oBAAAA,GAAuBU,WAAAA,EAAaf,WAAAA,EAAagB,WAAAA,EAAad,WAAAA,EAAae,cAAAA,EAAgBhB,cAAAA,KAAmBE,WAAAA;EAC1He,GAAAA,EAAKnB,OAAAA;EACLoB,IAAAA;EACAC,UAAAA,EAAYjB,iBAAAA;EACZkB,WAAAA;AAAAA,GACClB,2BAAAA;EACDmB,IAAAA,EAAMnB,WAAAA;IACJe,GAAAA,EAAKnB,OAAAA;IACLoB,IAAAA;IACAC,UAAAA,EAAYjB,iBAAAA;IACZkB,WAAAA;EAAAA,GACClB,2BAAAA;IACDoB,oBAAAA,EAAsBpB,cAAAA;MACpBqB,KAAAA;MACAC,MAAAA;MACAN,IAAAA;IAAAA;IAEFO,oBAAAA,EAAsBvB,iBAAAA;MACpBqB,KAAAA;QACEG,IAAAA;MAAAA;MAEFF,MAAAA;QACEG,EAAAA;QACAD,IAAAA;QACAE,KAAAA;QACAC,SAAAA,EAAWtB,IAAAA;QACXuB,SAAAA,EAAWvB,IAAAA;QACXwB,MAAAA;QACAC,IAAAA;QACAC,SAAAA,EAAW1B,IAAAA;MAAAA;MAEbW,IAAAA;IAAAA;IAEFgB,sBAAAA,EAAwBhC,iBAAAA;MACtBqB,KAAAA;QACEY,MAAAA;QACAC,cAAAA;MAAAA;MAEFZ,MAAAA;QACEG,EAAAA;QACAU,WAAAA;QACAL,IAAAA;QACAD,MAAAA;QACAE,SAAAA,EAAW1B,IAAAA;QACX+B,SAAAA,EAAW/B,IAAAA;QACXgC,YAAAA;QACAV,SAAAA,EAAWtB,IAAAA;QACXuB,SAAAA,EAAWvB,IAAAA;MAAAA;MAEbW,IAAAA;IAAAA;IAEFsB,iBAAAA,EAAmBtC,cAAAA;MACjBqB,KAAAA;MACAC,MAAAA;QACEG,EAAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":["Context","TRPCMethods","BillingService","AuthService","_$_trpc_server0","_$stripe","createAuthTRPCRouter","TRPCDefaultErrorShape","TRPCQueryProcedure","Date","TRPCMutationProcedure","Record","TRPCDecorateCreateRouterOptions","TRPCBuiltRouter","Stripe","Invoice","trpcMethods","authService","billingService","ctx","meta","errorShape","transformer","auth","getUserWaitlistCount","input","output","createInvitationCode","name","id","email","createdAt","updatedAt","status","code","expiresAt","createAccountClaimCode","userId","expiresInHours","claimUserId","claimedAt","claimedEmail","listAccountClaims","generateAccountClaimMagicLink","claimId","url","listAccountClaimMagicLinks","getMyAccountClaimStatus","setMyAccountClaimEmail","acceptMyAccountClaim","listWaitlist","listAdminWaitlist","addToWaitlist","inviteToWaitlist","inviteFromWaitlist","removeFromWaitlist","joinWaitlist","getOnboarding","setOnboarding","getPreferences","setPreferences","getOrganizationPreferences","setOrganizationPreferences","getMetadata","setMetadata","getFlags","getOrganizationFlags","setFlags","setOrganizationFlags","validateWaitlistCode","billing","getActiveSubscription","plan","referenceId","stripeCustomerId","stripeSubscriptionId","periodStart","periodEnd","cancelAtPeriodEnd","cancelAt","canceledAt","seats","trialStart","trialEnd","priceId","interval","unitAmount","discounts","listInvoices","BackendTRPCRouter","ReturnType"],"sources":["../../../../../../backend/dist/src/types.d.mts"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_src_modules_auth_auth_lib = require("../auth.lib.js");
|
|
3
|
-
let posthog_js_react_dist_umd_index_js = require("posthog-js/react/dist/umd/index.js");
|
|
4
3
|
let react = require("react");
|
|
4
|
+
let posthog_js_react_dist_umd_index_js = require("posthog-js/react/dist/umd/index.js");
|
|
5
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
//#region src/modules/auth/components/AuthProvider.tsx
|
|
7
7
|
function isImpersonatedSession(session) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { authClient } from "../auth.lib.mjs";
|
|
2
|
-
import { usePostHog } from "posthog-js/react/dist/esm/index.js";
|
|
3
2
|
import { createContext, useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { usePostHog } from "posthog-js/react/dist/esm/index.js";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/modules/auth/components/AuthProvider.tsx
|
|
6
6
|
function isImpersonatedSession(session) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let _tanstack_react_query = require("@tanstack/react-query");
|
|
2
3
|
let react = require("react");
|
|
3
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
-
let _tanstack_react_query = require("@tanstack/react-query");
|
|
5
5
|
//#region src/modules/billing/components/BillingProvider.tsx
|
|
6
6
|
const billingProviderContext = (0, react.createContext)({
|
|
7
7
|
isLoading: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { useQuery } from "@tanstack/react-query";
|
|
1
2
|
import { createContext } from "react";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useQuery } from "@tanstack/react-query";
|
|
4
4
|
//#region src/modules/billing/components/BillingProvider.tsx
|
|
5
5
|
const billingProviderContext = createContext({
|
|
6
6
|
isLoading: true,
|
|
@@ -28,7 +28,7 @@ interface NuqsQueryParams {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Hook to manage all query parameters via nuqs (URL query parameters)
|
|
31
|
-
* Manages: filters
|
|
31
|
+
* Manages: `f` (filters as tuple arrays), `q`, `s`/`o`, `p`/`l`, `g`, `r`
|
|
32
32
|
* Accepts an optional prefix to namespace params when multiple tables share a view.
|
|
33
33
|
*/
|
|
34
34
|
declare const useNuqsQueryParams: (prefix?: string) => NuqsQueryParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNuqsQueryParams.d.mts","names":[],"sources":["../../../../../src/modules/table/hooks/useNuqsQueryParams.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"useNuqsQueryParams.d.mts","names":[],"sources":["../../../../../src/modules/table/hooks/useNuqsQueryParams.ts"],"mappings":";;;;;;;KAsJY,KAAA;AAAA,KAEA,WAAA;AAAA,UAEK,eAAA;;EAEf,CAAA;EACA,IAAA,GAAO,KAAA;EACP,OAAA,GAAU,YAAA;EACV,UAAA,IAAc,OAAA,EAAS,YAAA;EACvB,WAAA,GAAc,WAAA;EACd,cAAA,IAAkB,KAAA,EAAO,WAAA;EACzB,IAAA;EACA,KAAA,GAAQ,KAAA;EACR,UAAA,IAAc,OAAA,EAAS,OAAA,CAAQ,YAAA;EAC/B,OAAA,GAAU,YAAA;EACV,IAAA;EACA,KAAA;EACA,aAAA,IAAiB,OAAA,EAAS,OAAA,CAAQ,eAAA;EAClC,UAAA,GAAa,eAAA;EACb,QAAA,EAAU,aAAA;EACV,WAAA,GAAc,OAAA,EAAS,OAAA,CAAQ,aAAA;AAAA;;;;;;cAQpB,kBAAA,GAAsB,MAAA,cAAkB,eAAA"}
|
|
@@ -28,7 +28,7 @@ interface NuqsQueryParams {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Hook to manage all query parameters via nuqs (URL query parameters)
|
|
31
|
-
* Manages: filters
|
|
31
|
+
* Manages: `f` (filters as tuple arrays), `q`, `s`/`o`, `p`/`l`, `g`, `r`
|
|
32
32
|
* Accepts an optional prefix to namespace params when multiple tables share a view.
|
|
33
33
|
*/
|
|
34
34
|
declare const useNuqsQueryParams: (prefix?: string) => NuqsQueryParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNuqsQueryParams.d.ts","names":[],"sources":["../../../../../src/modules/table/hooks/useNuqsQueryParams.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"useNuqsQueryParams.d.ts","names":[],"sources":["../../../../../src/modules/table/hooks/useNuqsQueryParams.ts"],"mappings":";;;;;;;KAsJY,KAAA;AAAA,KAEA,WAAA;AAAA,UAEK,eAAA;;EAEf,CAAA;EACA,IAAA,GAAO,KAAA;EACP,OAAA,GAAU,YAAA;EACV,UAAA,IAAc,OAAA,EAAS,YAAA;EACvB,WAAA,GAAc,WAAA;EACd,cAAA,IAAkB,KAAA,EAAO,WAAA;EACzB,IAAA;EACA,KAAA,GAAQ,KAAA;EACR,UAAA,IAAc,OAAA,EAAS,OAAA,CAAQ,YAAA;EAC/B,OAAA,GAAU,YAAA;EACV,IAAA;EACA,KAAA;EACA,aAAA,IAAiB,OAAA,EAAS,OAAA,CAAQ,eAAA;EAClC,UAAA,GAAa,eAAA;EACb,QAAA,EAAU,aAAA;EACV,WAAA,GAAc,OAAA,EAAS,OAAA,CAAQ,aAAA;AAAA;;;;;;cAQpB,kBAAA,GAAsB,MAAA,cAAkB,eAAA"}
|
|
@@ -2,32 +2,123 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
let react = require("react");
|
|
3
3
|
let _m5kdev_commons_modules_schemas_query_schema = require("@m5kdev/commons/modules/schemas/query.schema");
|
|
4
4
|
let nuqs = require("nuqs");
|
|
5
|
+
let zod = require("zod");
|
|
5
6
|
//#region src/modules/table/hooks/useNuqsQueryParams.ts
|
|
6
|
-
|
|
7
|
+
/** Each row: [columnId, type, method, value, valueTo?, endColumnId?] — all strings in the URL */
|
|
8
|
+
const filtersRawSchema = zod.z.array(zod.z.array(zod.z.string()).min(4).max(6));
|
|
9
|
+
const parseAsFilterTuples = (0, nuqs.parseAsJson)((value) => filtersRawSchema.parse(value)).withDefault([]);
|
|
7
10
|
const parseAsGrouping = (0, nuqs.parseAsArrayOf)(nuqs.parseAsString).withDefault([]);
|
|
11
|
+
const NULLISH_METHODS = new Set([
|
|
12
|
+
"isEmpty",
|
|
13
|
+
"isNotEmpty",
|
|
14
|
+
"is_null",
|
|
15
|
+
"is_not_null"
|
|
16
|
+
]);
|
|
17
|
+
function encodeFilterValue(filter) {
|
|
18
|
+
if (NULLISH_METHODS.has(filter.method)) return typeof filter.value === "string" ? filter.value : "";
|
|
19
|
+
const { type, method, value } = filter;
|
|
20
|
+
switch (type) {
|
|
21
|
+
case "number": return String(value);
|
|
22
|
+
case "boolean": return value ? "true" : "false";
|
|
23
|
+
case "enum":
|
|
24
|
+
case "jsonArray":
|
|
25
|
+
if (method === "oneOf" && Array.isArray(value)) return JSON.stringify(value);
|
|
26
|
+
if (Array.isArray(value)) return JSON.stringify(value);
|
|
27
|
+
return String(value);
|
|
28
|
+
default: return String(value);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function decodeFilterValue(type, method, valueStr) {
|
|
32
|
+
if (NULLISH_METHODS.has(method)) return valueStr;
|
|
33
|
+
switch (type) {
|
|
34
|
+
case "number": {
|
|
35
|
+
const n = Number.parseFloat(valueStr);
|
|
36
|
+
return Number.isNaN(n) ? 0 : n;
|
|
37
|
+
}
|
|
38
|
+
case "boolean": return valueStr === "true";
|
|
39
|
+
case "enum":
|
|
40
|
+
case "jsonArray":
|
|
41
|
+
if (method === "oneOf") try {
|
|
42
|
+
const parsed = JSON.parse(valueStr);
|
|
43
|
+
return Array.isArray(parsed) ? parsed.map(String) : [];
|
|
44
|
+
} catch {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
if (valueStr.startsWith("[")) try {
|
|
48
|
+
const parsed = JSON.parse(valueStr);
|
|
49
|
+
if (Array.isArray(parsed)) return parsed.map(String);
|
|
50
|
+
} catch {}
|
|
51
|
+
return valueStr;
|
|
52
|
+
default: return valueStr;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Builds URL tuple; omits optional tails when unused (endColumnId requires valueTo slot — may be ""). */
|
|
56
|
+
function encodeFilterToTuple(filter) {
|
|
57
|
+
const tuple = [
|
|
58
|
+
filter.columnId,
|
|
59
|
+
filter.type,
|
|
60
|
+
filter.method,
|
|
61
|
+
encodeFilterValue(filter)
|
|
62
|
+
];
|
|
63
|
+
const hasValueTo = filter.valueTo != null && filter.valueTo !== "";
|
|
64
|
+
const hasEndColumnId = filter.endColumnId != null && filter.endColumnId !== "";
|
|
65
|
+
if (hasValueTo && filter.valueTo != null) tuple.push(filter.valueTo);
|
|
66
|
+
if (hasEndColumnId && filter.endColumnId != null) {
|
|
67
|
+
if (!hasValueTo) tuple.push("");
|
|
68
|
+
tuple.push(filter.endColumnId);
|
|
69
|
+
}
|
|
70
|
+
return tuple;
|
|
71
|
+
}
|
|
72
|
+
function decodeTupleToFilter(parts) {
|
|
73
|
+
if (parts.length < 4 || parts.length > 6) return null;
|
|
74
|
+
const [columnId, typeStr, methodStr, valueStr, valueToStr, endColumnIdStr] = parts;
|
|
75
|
+
const typeParsed = _m5kdev_commons_modules_schemas_query_schema.filterSchema.shape.type.safeParse(typeStr);
|
|
76
|
+
const methodParsed = _m5kdev_commons_modules_schemas_query_schema.filterSchema.shape.method.safeParse(methodStr);
|
|
77
|
+
if (!typeParsed.success || !methodParsed.success) return null;
|
|
78
|
+
const type = typeParsed.data;
|
|
79
|
+
const method = methodParsed.data;
|
|
80
|
+
const candidate = {
|
|
81
|
+
columnId,
|
|
82
|
+
type,
|
|
83
|
+
method,
|
|
84
|
+
value: decodeFilterValue(type, method, valueStr)
|
|
85
|
+
};
|
|
86
|
+
if (valueToStr !== void 0) candidate.valueTo = valueToStr;
|
|
87
|
+
if (endColumnIdStr !== void 0) candidate.endColumnId = endColumnIdStr;
|
|
88
|
+
const parsed = _m5kdev_commons_modules_schemas_query_schema.filterSchema.safeParse(candidate);
|
|
89
|
+
return parsed.success ? parsed.data : null;
|
|
90
|
+
}
|
|
8
91
|
/**
|
|
9
92
|
* Hook to manage all query parameters via nuqs (URL query parameters)
|
|
10
|
-
* Manages: filters
|
|
93
|
+
* Manages: `f` (filters as tuple arrays), `q`, `s`/`o`, `p`/`l`, `g`, `r`
|
|
11
94
|
* Accepts an optional prefix to namespace params when multiple tables share a view.
|
|
12
95
|
*/
|
|
13
96
|
const useNuqsQueryParams = (prefix) => {
|
|
14
97
|
const k = (name) => prefix ? `${prefix}_${name}` : name;
|
|
15
|
-
const [sort, setSort] = (0, nuqs.useQueryState)(k("
|
|
16
|
-
const [order, setOrder] = (0, nuqs.useQueryState)(k("
|
|
17
|
-
const [page, setPage] = (0, nuqs.useQueryState)(k("
|
|
18
|
-
const [limit, setLimit] = (0, nuqs.useQueryState)(k("
|
|
98
|
+
const [sort, setSort] = (0, nuqs.useQueryState)(k("s"), nuqs.parseAsString.withDefault(""));
|
|
99
|
+
const [order, setOrder] = (0, nuqs.useQueryState)(k("o"), (0, nuqs.parseAsStringLiteral)(["asc", "desc"]));
|
|
100
|
+
const [page, setPage] = (0, nuqs.useQueryState)(k("p"), nuqs.parseAsInteger.withDefault(1));
|
|
101
|
+
const [limit, setLimit] = (0, nuqs.useQueryState)(k("l"), nuqs.parseAsInteger.withDefault(10));
|
|
19
102
|
const [qRaw, setQRaw] = (0, nuqs.useQueryState)(k("q"), nuqs.parseAsString);
|
|
20
|
-
const [
|
|
103
|
+
const [filtersRaw, setFiltersRaw] = (0, nuqs.useQueryState)(k("f"), parseAsFilterTuples);
|
|
104
|
+
const filters = (0, react.useMemo)(() => {
|
|
105
|
+
const decoded = filtersRaw.map((row) => decodeTupleToFilter(row)).filter((f) => f != null);
|
|
106
|
+
const parsed = _m5kdev_commons_modules_schemas_query_schema.filtersSchema.safeParse(decoded);
|
|
107
|
+
return parsed.success ? parsed.data : [];
|
|
108
|
+
}, [filtersRaw]);
|
|
109
|
+
const setFilters = (0, react.useCallback)((next) => {
|
|
110
|
+
setFiltersRaw(next.length === 0 ? null : next.map(encodeFilterToTuple));
|
|
111
|
+
}, [setFiltersRaw]);
|
|
21
112
|
const setQ = (0, react.useCallback)((value) => {
|
|
22
113
|
setQRaw(value === "" || value == null ? null : value);
|
|
23
114
|
}, [setQRaw]);
|
|
24
|
-
const [granularity, setGranularity] = (0, nuqs.useQueryState)(k("
|
|
115
|
+
const [granularity, setGranularity] = (0, nuqs.useQueryState)(k("r"), (0, nuqs.parseAsStringLiteral)([
|
|
25
116
|
"daily",
|
|
26
117
|
"weekly",
|
|
27
118
|
"monthly",
|
|
28
119
|
"yearly"
|
|
29
120
|
]).withDefault("daily"));
|
|
30
|
-
const [groupingRaw, setGroupingRaw] = (0, nuqs.useQueryState)(k("
|
|
121
|
+
const [groupingRaw, setGroupingRaw] = (0, nuqs.useQueryState)(k("g"), parseAsGrouping);
|
|
31
122
|
const grouping = groupingRaw;
|
|
32
123
|
const setGrouping = (0, react.useCallback)((updater) => {
|
|
33
124
|
const next = typeof updater === "function" ? updater(groupingRaw) : updater;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNuqsQueryParams.js","names":["filtersSchema","parseAsString","parseAsInteger"],"sources":["../../../../../src/modules/table/hooks/useNuqsQueryParams.ts"],"sourcesContent":["import type { QueryFilters } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport { filtersSchema } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport type { GroupingState, PaginationState, SortingState, Updater } from \"@tanstack/react-table\";\r\nimport {\r\n parseAsArrayOf,\r\n parseAsInteger,\r\n parseAsJson,\r\n parseAsString,\r\n parseAsStringLiteral,\r\n useQueryState,\r\n} from \"nuqs\";\r\nimport { useCallback, useEffect, useMemo } from \"react\";\r\n\r\nconst parseAsFilters = parseAsJson<QueryFilters>((value) => filtersSchema.parse(value)).withDefault(\r\n []\r\n);\r\n\r\nconst parseAsGrouping = parseAsArrayOf(parseAsString).withDefault([]);\r\n\r\nexport type Order = \"asc\" | \"desc\";\r\n\r\nexport type Granularity = \"daily\" | \"weekly\" | \"monthly\" | \"yearly\";\r\n\r\nexport interface NuqsQueryParams {\r\n /** Global search string from URL (`q`); absent when not in URL. */\r\n q: string | null;\r\n setQ: (value: string | null) => void;\r\n filters?: QueryFilters;\r\n setFilters?: (filters: QueryFilters) => void;\r\n granularity?: Granularity;\r\n setGranularity?: (value: Granularity) => void;\r\n sort?: string;\r\n order?: Order | null;\r\n setSorting?: (updater: Updater<SortingState>) => void;\r\n sorting?: SortingState;\r\n page?: number;\r\n limit?: number;\r\n setPagination?: (updater: Updater<PaginationState>) => void;\r\n pagination?: PaginationState;\r\n grouping: GroupingState;\r\n setGrouping: (updater: Updater<GroupingState>) => void;\r\n}\r\n\r\n/**\r\n * Hook to manage all query parameters via nuqs (URL query parameters)\r\n * Manages: filters, q, sort, order, page, limit, groupBy, granularity\r\n * Accepts an optional prefix to namespace params when multiple tables share a view.\r\n */\r\nexport const useNuqsQueryParams = (prefix?: string): NuqsQueryParams => {\r\n const k = (name: string) => (prefix ? `${prefix}_${name}` : name);\r\n\r\n const [sort, setSort] = useQueryState<string>(k(\"sort\"), parseAsString.withDefault(\"\"));\r\n const [order, setOrder] = useQueryState<Order>(k(\"order\"), parseAsStringLiteral([\"asc\", \"desc\"]));\r\n const [page, setPage] = useQueryState<number>(k(\"page\"), parseAsInteger.withDefault(1));\r\n const [limit, setLimit] = useQueryState<number>(k(\"limit\"), parseAsInteger.withDefault(10));\r\n const [qRaw, setQRaw] = useQueryState(k(\"q\"), parseAsString);\r\n const [filters, setFilters] = useQueryState<QueryFilters>(k(\"filters\"), parseAsFilters);\r\n\r\n const setQ = useCallback(\r\n (value: string | null) => {\r\n void setQRaw(value === \"\" || value == null ? null : value);\r\n },\r\n [setQRaw]\r\n );\r\n const [granularity, setGranularity] = useQueryState<Granularity>(\r\n k(\"granularity\"),\r\n parseAsStringLiteral([\"daily\", \"weekly\", \"monthly\", \"yearly\"]).withDefault(\"daily\")\r\n );\r\n const [groupingRaw, setGroupingRaw] = useQueryState<string[]>(k(\"groupBy\"), parseAsGrouping);\r\n const grouping: GroupingState = groupingRaw;\r\n\r\n const setGrouping = useCallback(\r\n (updater: Updater<GroupingState>) => {\r\n const next = typeof updater === \"function\" ? updater(groupingRaw) : updater;\r\n setGroupingRaw(next.length > 0 ? next : null);\r\n },\r\n [groupingRaw, setGroupingRaw]\r\n );\r\n\r\n const sorting = useMemo(() => {\r\n if (!sort) {\r\n return [];\r\n }\r\n const effectiveOrder = order ?? \"asc\";\r\n return [{ id: sort, desc: effectiveOrder === \"desc\" }];\r\n }, [sort, order]);\r\n\r\n const pagination = useMemo(() => ({ pageIndex: page - 1, pageSize: limit }), [page, limit]);\r\n\r\n const setSorting = useCallback(\r\n (updater: Updater<SortingState>) => {\r\n // Build current sorting state from current values\r\n const currentSorting: SortingState = sort\r\n ? [{ id: sort, desc: (order ?? \"asc\") === \"desc\" }]\r\n : [];\r\n\r\n const next = typeof updater === \"function\" ? updater(currentSorting) : updater;\r\n const first = next[0];\r\n\r\n if (!first || !first.id) {\r\n setSort(\"\");\r\n setOrder(null);\r\n return;\r\n }\r\n\r\n setSort(first.id);\r\n setOrder(first.desc ? \"desc\" : \"asc\");\r\n },\r\n [sort, order, setSort, setOrder]\r\n );\r\n\r\n // Sync order to \"asc\" if sort is set but order is null (handles URL state inconsistencies)\r\n useEffect(() => {\r\n if (sort && !order) {\r\n setOrder(\"asc\");\r\n }\r\n }, [sort, order, setOrder]);\r\n\r\n // biome-ignore lint/correctness/useExhaustiveDependencies: dependent on page and limit only\r\n const setPagination = useCallback(\r\n (updater: Updater<PaginationState>) => {\r\n // TanStack Table uses 0-based indexing, but URL uses 1-based\r\n const currentState = { pageIndex: page - 1, pageSize: limit };\r\n const next = typeof updater === \"function\" ? updater(currentState) : updater;\r\n // Convert back to 1-based for URL\r\n setPage((next.pageIndex ?? 0) + 1);\r\n setLimit(next.pageSize ?? 10);\r\n },\r\n [page, limit]\r\n );\r\n\r\n return useMemo(\r\n () => ({\r\n q: qRaw,\r\n setQ,\r\n filters,\r\n setFilters,\r\n granularity,\r\n setGranularity,\r\n sort,\r\n order,\r\n setSorting,\r\n sorting,\r\n page,\r\n limit,\r\n setPagination,\r\n pagination,\r\n grouping,\r\n setGrouping,\r\n }),\r\n [\r\n qRaw,\r\n setQ,\r\n filters,\r\n setFilters,\r\n granularity,\r\n setGranularity,\r\n sort,\r\n order,\r\n setSorting,\r\n sorting,\r\n page,\r\n limit,\r\n setPagination,\r\n pagination,\r\n grouping,\r\n setGrouping,\r\n ]\r\n );\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useNuqsQueryParams.js","names":["z","parseAsString","filterSchema","parseAsInteger","filtersSchema"],"sources":["../../../../../src/modules/table/hooks/useNuqsQueryParams.ts"],"sourcesContent":["import type { QueryFilter, QueryFilters } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport { filterSchema, filtersSchema } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport type { GroupingState, PaginationState, SortingState, Updater } from \"@tanstack/react-table\";\r\nimport {\r\n parseAsArrayOf,\r\n parseAsInteger,\r\n parseAsJson,\r\n parseAsString,\r\n parseAsStringLiteral,\r\n useQueryState,\r\n} from \"nuqs\";\r\nimport { useCallback, useEffect, useMemo } from \"react\";\r\nimport { z } from \"zod\";\r\n\r\n/** Each row: [columnId, type, method, value, valueTo?, endColumnId?] — all strings in the URL */\r\nconst filtersRawSchema = z.array(z.array(z.string()).min(4).max(6));\r\n\r\nconst parseAsFilterTuples = parseAsJson<string[][]>((value) =>\r\n filtersRawSchema.parse(value)\r\n).withDefault([]);\r\n\r\nconst parseAsGrouping = parseAsArrayOf(parseAsString).withDefault([]);\r\n\r\nconst NULLISH_METHODS: ReadonlySet<QueryFilter[\"method\"]> = new Set([\r\n \"isEmpty\",\r\n \"isNotEmpty\",\r\n \"is_null\",\r\n \"is_not_null\",\r\n]);\r\n\r\nfunction encodeFilterValue(filter: QueryFilter): string {\r\n if (NULLISH_METHODS.has(filter.method)) {\r\n return typeof filter.value === \"string\" ? filter.value : \"\";\r\n }\r\n const { type, method, value } = filter;\r\n switch (type) {\r\n case \"number\":\r\n return String(value as number);\r\n case \"boolean\":\r\n return (value as boolean) ? \"true\" : \"false\";\r\n case \"enum\":\r\n case \"jsonArray\":\r\n if (method === \"oneOf\" && Array.isArray(value)) {\r\n return JSON.stringify(value);\r\n }\r\n if (Array.isArray(value)) {\r\n return JSON.stringify(value);\r\n }\r\n return String(value);\r\n default:\r\n return String(value);\r\n }\r\n}\r\n\r\nfunction decodeFilterValue(\r\n type: QueryFilter[\"type\"],\r\n method: QueryFilter[\"method\"],\r\n valueStr: string\r\n): QueryFilter[\"value\"] {\r\n if (NULLISH_METHODS.has(method)) {\r\n return valueStr;\r\n }\r\n switch (type) {\r\n case \"number\": {\r\n const n = Number.parseFloat(valueStr);\r\n return Number.isNaN(n) ? 0 : n;\r\n }\r\n case \"boolean\":\r\n return valueStr === \"true\";\r\n case \"enum\":\r\n case \"jsonArray\":\r\n if (method === \"oneOf\") {\r\n try {\r\n const parsed = JSON.parse(valueStr) as unknown;\r\n return Array.isArray(parsed) ? parsed.map(String) : [];\r\n } catch {\r\n return [];\r\n }\r\n }\r\n if (valueStr.startsWith(\"[\")) {\r\n try {\r\n const parsed = JSON.parse(valueStr) as unknown;\r\n if (Array.isArray(parsed)) {\r\n return parsed.map(String);\r\n }\r\n } catch {\r\n /* use raw string */\r\n }\r\n }\r\n return valueStr;\r\n default:\r\n return valueStr;\r\n }\r\n}\r\n\r\n/** Builds URL tuple; omits optional tails when unused (endColumnId requires valueTo slot — may be \"\"). */\r\nfunction encodeFilterToTuple(filter: QueryFilter): string[] {\r\n const tuple: string[] = [filter.columnId, filter.type, filter.method, encodeFilterValue(filter)];\r\n const hasValueTo = filter.valueTo != null && filter.valueTo !== \"\";\r\n const hasEndColumnId = filter.endColumnId != null && filter.endColumnId !== \"\";\r\n\r\n if (hasValueTo && filter.valueTo != null) {\r\n tuple.push(filter.valueTo);\r\n }\r\n\r\n if (hasEndColumnId && filter.endColumnId != null) {\r\n if (!hasValueTo) {\r\n tuple.push(\"\");\r\n }\r\n tuple.push(filter.endColumnId);\r\n }\r\n\r\n return tuple;\r\n}\r\n\r\nfunction decodeTupleToFilter(parts: readonly string[]): QueryFilter | null {\r\n if (parts.length < 4 || parts.length > 6) {\r\n return null;\r\n }\r\n\r\n const [columnId, typeStr, methodStr, valueStr, valueToStr, endColumnIdStr] = parts;\r\n\r\n const typeParsed = filterSchema.shape.type.safeParse(typeStr);\r\n const methodParsed = filterSchema.shape.method.safeParse(methodStr);\r\n if (!typeParsed.success || !methodParsed.success) {\r\n return null;\r\n }\r\n\r\n const type = typeParsed.data;\r\n const method = methodParsed.data;\r\n const value = decodeFilterValue(type, method, valueStr);\r\n\r\n const candidate: QueryFilter = {\r\n columnId,\r\n type,\r\n method,\r\n value,\r\n };\r\n\r\n if (valueToStr !== undefined) {\r\n candidate.valueTo = valueToStr;\r\n }\r\n if (endColumnIdStr !== undefined) {\r\n candidate.endColumnId = endColumnIdStr;\r\n }\r\n\r\n const parsed = filterSchema.safeParse(candidate);\r\n return parsed.success ? parsed.data : null;\r\n}\r\n\r\nexport type Order = \"asc\" | \"desc\";\r\n\r\nexport type Granularity = \"daily\" | \"weekly\" | \"monthly\" | \"yearly\";\r\n\r\nexport interface NuqsQueryParams {\r\n /** Global search string from URL (`q`); absent when not in URL. */\r\n q: string | null;\r\n setQ: (value: string | null) => void;\r\n filters?: QueryFilters;\r\n setFilters?: (filters: QueryFilters) => void;\r\n granularity?: Granularity;\r\n setGranularity?: (value: Granularity) => void;\r\n sort?: string;\r\n order?: Order | null;\r\n setSorting?: (updater: Updater<SortingState>) => void;\r\n sorting?: SortingState;\r\n page?: number;\r\n limit?: number;\r\n setPagination?: (updater: Updater<PaginationState>) => void;\r\n pagination?: PaginationState;\r\n grouping: GroupingState;\r\n setGrouping: (updater: Updater<GroupingState>) => void;\r\n}\r\n\r\n/**\r\n * Hook to manage all query parameters via nuqs (URL query parameters)\r\n * Manages: `f` (filters as tuple arrays), `q`, `s`/`o`, `p`/`l`, `g`, `r`\r\n * Accepts an optional prefix to namespace params when multiple tables share a view.\r\n */\r\nexport const useNuqsQueryParams = (prefix?: string): NuqsQueryParams => {\r\n const k = (name: string) => (prefix ? `${prefix}_${name}` : name);\r\n\r\n const [sort, setSort] = useQueryState<string>(k(\"s\"), parseAsString.withDefault(\"\"));\r\n const [order, setOrder] = useQueryState<Order>(k(\"o\"), parseAsStringLiteral([\"asc\", \"desc\"]));\r\n const [page, setPage] = useQueryState<number>(k(\"p\"), parseAsInteger.withDefault(1));\r\n const [limit, setLimit] = useQueryState<number>(k(\"l\"), parseAsInteger.withDefault(10));\r\n const [qRaw, setQRaw] = useQueryState(k(\"q\"), parseAsString);\r\n const [filtersRaw, setFiltersRaw] = useQueryState<string[][]>(k(\"f\"), parseAsFilterTuples);\r\n\r\n const filters = useMemo((): QueryFilters => {\r\n const decoded = filtersRaw\r\n .map((row) => decodeTupleToFilter(row))\r\n .filter((f): f is QueryFilter => f != null);\r\n const parsed = filtersSchema.safeParse(decoded);\r\n return parsed.success ? parsed.data : [];\r\n }, [filtersRaw]);\r\n\r\n const setFilters = useCallback(\r\n (next: QueryFilters) => {\r\n void setFiltersRaw(next.length === 0 ? null : next.map(encodeFilterToTuple));\r\n },\r\n [setFiltersRaw]\r\n );\r\n\r\n const setQ = useCallback(\r\n (value: string | null) => {\r\n void setQRaw(value === \"\" || value == null ? null : value);\r\n },\r\n [setQRaw]\r\n );\r\n const [granularity, setGranularity] = useQueryState<Granularity>(\r\n k(\"r\"),\r\n parseAsStringLiteral([\"daily\", \"weekly\", \"monthly\", \"yearly\"]).withDefault(\"daily\")\r\n );\r\n const [groupingRaw, setGroupingRaw] = useQueryState<string[]>(k(\"g\"), parseAsGrouping);\r\n const grouping: GroupingState = groupingRaw;\r\n\r\n const setGrouping = useCallback(\r\n (updater: Updater<GroupingState>) => {\r\n const next = typeof updater === \"function\" ? updater(groupingRaw) : updater;\r\n setGroupingRaw(next.length > 0 ? next : null);\r\n },\r\n [groupingRaw, setGroupingRaw]\r\n );\r\n\r\n const sorting = useMemo(() => {\r\n if (!sort) {\r\n return [];\r\n }\r\n const effectiveOrder = order ?? \"asc\";\r\n return [{ id: sort, desc: effectiveOrder === \"desc\" }];\r\n }, [sort, order]);\r\n\r\n const pagination = useMemo(() => ({ pageIndex: page - 1, pageSize: limit }), [page, limit]);\r\n\r\n const setSorting = useCallback(\r\n (updater: Updater<SortingState>) => {\r\n const currentSorting: SortingState = sort\r\n ? [{ id: sort, desc: (order ?? \"asc\") === \"desc\" }]\r\n : [];\r\n\r\n const next = typeof updater === \"function\" ? updater(currentSorting) : updater;\r\n const first = next[0];\r\n\r\n if (!first || !first.id) {\r\n setSort(\"\");\r\n setOrder(null);\r\n return;\r\n }\r\n\r\n setSort(first.id);\r\n setOrder(first.desc ? \"desc\" : \"asc\");\r\n },\r\n [sort, order, setSort, setOrder]\r\n );\r\n\r\n useEffect(() => {\r\n if (sort && !order) {\r\n setOrder(\"asc\");\r\n }\r\n }, [sort, order, setOrder]);\r\n\r\n // biome-ignore lint/correctness/useExhaustiveDependencies: dependent on page and limit only\r\n const setPagination = useCallback(\r\n (updater: Updater<PaginationState>) => {\r\n const currentState = { pageIndex: page - 1, pageSize: limit };\r\n const next = typeof updater === \"function\" ? updater(currentState) : updater;\r\n setPage((next.pageIndex ?? 0) + 1);\r\n setLimit(next.pageSize ?? 10);\r\n },\r\n [page, limit]\r\n );\r\n\r\n return useMemo(\r\n () => ({\r\n q: qRaw,\r\n setQ,\r\n filters,\r\n setFilters,\r\n granularity,\r\n setGranularity,\r\n sort,\r\n order,\r\n setSorting,\r\n sorting,\r\n page,\r\n limit,\r\n setPagination,\r\n pagination,\r\n grouping,\r\n setGrouping,\r\n }),\r\n [\r\n qRaw,\r\n setQ,\r\n filters,\r\n setFilters,\r\n granularity,\r\n setGranularity,\r\n sort,\r\n order,\r\n setSorting,\r\n sorting,\r\n page,\r\n limit,\r\n setPagination,\r\n pagination,\r\n grouping,\r\n setGrouping,\r\n ]\r\n );\r\n};\r\n"],"mappings":"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"}
|
|
@@ -1,32 +1,123 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo } from "react";
|
|
2
|
-
import { filtersSchema } from "@m5kdev/commons/modules/schemas/query.schema";
|
|
2
|
+
import { filterSchema, filtersSchema } from "@m5kdev/commons/modules/schemas/query.schema";
|
|
3
3
|
import { parseAsArrayOf, parseAsInteger, parseAsJson, parseAsString, parseAsStringLiteral, useQueryState } from "nuqs";
|
|
4
|
+
import { z } from "zod";
|
|
4
5
|
//#region src/modules/table/hooks/useNuqsQueryParams.ts
|
|
5
|
-
|
|
6
|
+
/** Each row: [columnId, type, method, value, valueTo?, endColumnId?] — all strings in the URL */
|
|
7
|
+
const filtersRawSchema = z.array(z.array(z.string()).min(4).max(6));
|
|
8
|
+
const parseAsFilterTuples = parseAsJson((value) => filtersRawSchema.parse(value)).withDefault([]);
|
|
6
9
|
const parseAsGrouping = parseAsArrayOf(parseAsString).withDefault([]);
|
|
10
|
+
const NULLISH_METHODS = new Set([
|
|
11
|
+
"isEmpty",
|
|
12
|
+
"isNotEmpty",
|
|
13
|
+
"is_null",
|
|
14
|
+
"is_not_null"
|
|
15
|
+
]);
|
|
16
|
+
function encodeFilterValue(filter) {
|
|
17
|
+
if (NULLISH_METHODS.has(filter.method)) return typeof filter.value === "string" ? filter.value : "";
|
|
18
|
+
const { type, method, value } = filter;
|
|
19
|
+
switch (type) {
|
|
20
|
+
case "number": return String(value);
|
|
21
|
+
case "boolean": return value ? "true" : "false";
|
|
22
|
+
case "enum":
|
|
23
|
+
case "jsonArray":
|
|
24
|
+
if (method === "oneOf" && Array.isArray(value)) return JSON.stringify(value);
|
|
25
|
+
if (Array.isArray(value)) return JSON.stringify(value);
|
|
26
|
+
return String(value);
|
|
27
|
+
default: return String(value);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function decodeFilterValue(type, method, valueStr) {
|
|
31
|
+
if (NULLISH_METHODS.has(method)) return valueStr;
|
|
32
|
+
switch (type) {
|
|
33
|
+
case "number": {
|
|
34
|
+
const n = Number.parseFloat(valueStr);
|
|
35
|
+
return Number.isNaN(n) ? 0 : n;
|
|
36
|
+
}
|
|
37
|
+
case "boolean": return valueStr === "true";
|
|
38
|
+
case "enum":
|
|
39
|
+
case "jsonArray":
|
|
40
|
+
if (method === "oneOf") try {
|
|
41
|
+
const parsed = JSON.parse(valueStr);
|
|
42
|
+
return Array.isArray(parsed) ? parsed.map(String) : [];
|
|
43
|
+
} catch {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
if (valueStr.startsWith("[")) try {
|
|
47
|
+
const parsed = JSON.parse(valueStr);
|
|
48
|
+
if (Array.isArray(parsed)) return parsed.map(String);
|
|
49
|
+
} catch {}
|
|
50
|
+
return valueStr;
|
|
51
|
+
default: return valueStr;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Builds URL tuple; omits optional tails when unused (endColumnId requires valueTo slot — may be ""). */
|
|
55
|
+
function encodeFilterToTuple(filter) {
|
|
56
|
+
const tuple = [
|
|
57
|
+
filter.columnId,
|
|
58
|
+
filter.type,
|
|
59
|
+
filter.method,
|
|
60
|
+
encodeFilterValue(filter)
|
|
61
|
+
];
|
|
62
|
+
const hasValueTo = filter.valueTo != null && filter.valueTo !== "";
|
|
63
|
+
const hasEndColumnId = filter.endColumnId != null && filter.endColumnId !== "";
|
|
64
|
+
if (hasValueTo && filter.valueTo != null) tuple.push(filter.valueTo);
|
|
65
|
+
if (hasEndColumnId && filter.endColumnId != null) {
|
|
66
|
+
if (!hasValueTo) tuple.push("");
|
|
67
|
+
tuple.push(filter.endColumnId);
|
|
68
|
+
}
|
|
69
|
+
return tuple;
|
|
70
|
+
}
|
|
71
|
+
function decodeTupleToFilter(parts) {
|
|
72
|
+
if (parts.length < 4 || parts.length > 6) return null;
|
|
73
|
+
const [columnId, typeStr, methodStr, valueStr, valueToStr, endColumnIdStr] = parts;
|
|
74
|
+
const typeParsed = filterSchema.shape.type.safeParse(typeStr);
|
|
75
|
+
const methodParsed = filterSchema.shape.method.safeParse(methodStr);
|
|
76
|
+
if (!typeParsed.success || !methodParsed.success) return null;
|
|
77
|
+
const type = typeParsed.data;
|
|
78
|
+
const method = methodParsed.data;
|
|
79
|
+
const candidate = {
|
|
80
|
+
columnId,
|
|
81
|
+
type,
|
|
82
|
+
method,
|
|
83
|
+
value: decodeFilterValue(type, method, valueStr)
|
|
84
|
+
};
|
|
85
|
+
if (valueToStr !== void 0) candidate.valueTo = valueToStr;
|
|
86
|
+
if (endColumnIdStr !== void 0) candidate.endColumnId = endColumnIdStr;
|
|
87
|
+
const parsed = filterSchema.safeParse(candidate);
|
|
88
|
+
return parsed.success ? parsed.data : null;
|
|
89
|
+
}
|
|
7
90
|
/**
|
|
8
91
|
* Hook to manage all query parameters via nuqs (URL query parameters)
|
|
9
|
-
* Manages: filters
|
|
92
|
+
* Manages: `f` (filters as tuple arrays), `q`, `s`/`o`, `p`/`l`, `g`, `r`
|
|
10
93
|
* Accepts an optional prefix to namespace params when multiple tables share a view.
|
|
11
94
|
*/
|
|
12
95
|
const useNuqsQueryParams = (prefix) => {
|
|
13
96
|
const k = (name) => prefix ? `${prefix}_${name}` : name;
|
|
14
|
-
const [sort, setSort] = useQueryState(k("
|
|
15
|
-
const [order, setOrder] = useQueryState(k("
|
|
16
|
-
const [page, setPage] = useQueryState(k("
|
|
17
|
-
const [limit, setLimit] = useQueryState(k("
|
|
97
|
+
const [sort, setSort] = useQueryState(k("s"), parseAsString.withDefault(""));
|
|
98
|
+
const [order, setOrder] = useQueryState(k("o"), parseAsStringLiteral(["asc", "desc"]));
|
|
99
|
+
const [page, setPage] = useQueryState(k("p"), parseAsInteger.withDefault(1));
|
|
100
|
+
const [limit, setLimit] = useQueryState(k("l"), parseAsInteger.withDefault(10));
|
|
18
101
|
const [qRaw, setQRaw] = useQueryState(k("q"), parseAsString);
|
|
19
|
-
const [
|
|
102
|
+
const [filtersRaw, setFiltersRaw] = useQueryState(k("f"), parseAsFilterTuples);
|
|
103
|
+
const filters = useMemo(() => {
|
|
104
|
+
const decoded = filtersRaw.map((row) => decodeTupleToFilter(row)).filter((f) => f != null);
|
|
105
|
+
const parsed = filtersSchema.safeParse(decoded);
|
|
106
|
+
return parsed.success ? parsed.data : [];
|
|
107
|
+
}, [filtersRaw]);
|
|
108
|
+
const setFilters = useCallback((next) => {
|
|
109
|
+
setFiltersRaw(next.length === 0 ? null : next.map(encodeFilterToTuple));
|
|
110
|
+
}, [setFiltersRaw]);
|
|
20
111
|
const setQ = useCallback((value) => {
|
|
21
112
|
setQRaw(value === "" || value == null ? null : value);
|
|
22
113
|
}, [setQRaw]);
|
|
23
|
-
const [granularity, setGranularity] = useQueryState(k("
|
|
114
|
+
const [granularity, setGranularity] = useQueryState(k("r"), parseAsStringLiteral([
|
|
24
115
|
"daily",
|
|
25
116
|
"weekly",
|
|
26
117
|
"monthly",
|
|
27
118
|
"yearly"
|
|
28
119
|
]).withDefault("daily"));
|
|
29
|
-
const [groupingRaw, setGroupingRaw] = useQueryState(k("
|
|
120
|
+
const [groupingRaw, setGroupingRaw] = useQueryState(k("g"), parseAsGrouping);
|
|
30
121
|
const grouping = groupingRaw;
|
|
31
122
|
const setGrouping = useCallback((updater) => {
|
|
32
123
|
const next = typeof updater === "function" ? updater(groupingRaw) : updater;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNuqsQueryParams.mjs","names":[],"sources":["../../../../../src/modules/table/hooks/useNuqsQueryParams.ts"],"sourcesContent":["import type { QueryFilters } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport { filtersSchema } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport type { GroupingState, PaginationState, SortingState, Updater } from \"@tanstack/react-table\";\r\nimport {\r\n parseAsArrayOf,\r\n parseAsInteger,\r\n parseAsJson,\r\n parseAsString,\r\n parseAsStringLiteral,\r\n useQueryState,\r\n} from \"nuqs\";\r\nimport { useCallback, useEffect, useMemo } from \"react\";\r\n\r\nconst parseAsFilters = parseAsJson<QueryFilters>((value) => filtersSchema.parse(value)).withDefault(\r\n []\r\n);\r\n\r\nconst parseAsGrouping = parseAsArrayOf(parseAsString).withDefault([]);\r\n\r\nexport type Order = \"asc\" | \"desc\";\r\n\r\nexport type Granularity = \"daily\" | \"weekly\" | \"monthly\" | \"yearly\";\r\n\r\nexport interface NuqsQueryParams {\r\n /** Global search string from URL (`q`); absent when not in URL. */\r\n q: string | null;\r\n setQ: (value: string | null) => void;\r\n filters?: QueryFilters;\r\n setFilters?: (filters: QueryFilters) => void;\r\n granularity?: Granularity;\r\n setGranularity?: (value: Granularity) => void;\r\n sort?: string;\r\n order?: Order | null;\r\n setSorting?: (updater: Updater<SortingState>) => void;\r\n sorting?: SortingState;\r\n page?: number;\r\n limit?: number;\r\n setPagination?: (updater: Updater<PaginationState>) => void;\r\n pagination?: PaginationState;\r\n grouping: GroupingState;\r\n setGrouping: (updater: Updater<GroupingState>) => void;\r\n}\r\n\r\n/**\r\n * Hook to manage all query parameters via nuqs (URL query parameters)\r\n * Manages: filters, q, sort, order, page, limit, groupBy, granularity\r\n * Accepts an optional prefix to namespace params when multiple tables share a view.\r\n */\r\nexport const useNuqsQueryParams = (prefix?: string): NuqsQueryParams => {\r\n const k = (name: string) => (prefix ? `${prefix}_${name}` : name);\r\n\r\n const [sort, setSort] = useQueryState<string>(k(\"sort\"), parseAsString.withDefault(\"\"));\r\n const [order, setOrder] = useQueryState<Order>(k(\"order\"), parseAsStringLiteral([\"asc\", \"desc\"]));\r\n const [page, setPage] = useQueryState<number>(k(\"page\"), parseAsInteger.withDefault(1));\r\n const [limit, setLimit] = useQueryState<number>(k(\"limit\"), parseAsInteger.withDefault(10));\r\n const [qRaw, setQRaw] = useQueryState(k(\"q\"), parseAsString);\r\n const [filters, setFilters] = useQueryState<QueryFilters>(k(\"filters\"), parseAsFilters);\r\n\r\n const setQ = useCallback(\r\n (value: string | null) => {\r\n void setQRaw(value === \"\" || value == null ? null : value);\r\n },\r\n [setQRaw]\r\n );\r\n const [granularity, setGranularity] = useQueryState<Granularity>(\r\n k(\"granularity\"),\r\n parseAsStringLiteral([\"daily\", \"weekly\", \"monthly\", \"yearly\"]).withDefault(\"daily\")\r\n );\r\n const [groupingRaw, setGroupingRaw] = useQueryState<string[]>(k(\"groupBy\"), parseAsGrouping);\r\n const grouping: GroupingState = groupingRaw;\r\n\r\n const setGrouping = useCallback(\r\n (updater: Updater<GroupingState>) => {\r\n const next = typeof updater === \"function\" ? updater(groupingRaw) : updater;\r\n setGroupingRaw(next.length > 0 ? next : null);\r\n },\r\n [groupingRaw, setGroupingRaw]\r\n );\r\n\r\n const sorting = useMemo(() => {\r\n if (!sort) {\r\n return [];\r\n }\r\n const effectiveOrder = order ?? \"asc\";\r\n return [{ id: sort, desc: effectiveOrder === \"desc\" }];\r\n }, [sort, order]);\r\n\r\n const pagination = useMemo(() => ({ pageIndex: page - 1, pageSize: limit }), [page, limit]);\r\n\r\n const setSorting = useCallback(\r\n (updater: Updater<SortingState>) => {\r\n // Build current sorting state from current values\r\n const currentSorting: SortingState = sort\r\n ? [{ id: sort, desc: (order ?? \"asc\") === \"desc\" }]\r\n : [];\r\n\r\n const next = typeof updater === \"function\" ? updater(currentSorting) : updater;\r\n const first = next[0];\r\n\r\n if (!first || !first.id) {\r\n setSort(\"\");\r\n setOrder(null);\r\n return;\r\n }\r\n\r\n setSort(first.id);\r\n setOrder(first.desc ? \"desc\" : \"asc\");\r\n },\r\n [sort, order, setSort, setOrder]\r\n );\r\n\r\n // Sync order to \"asc\" if sort is set but order is null (handles URL state inconsistencies)\r\n useEffect(() => {\r\n if (sort && !order) {\r\n setOrder(\"asc\");\r\n }\r\n }, [sort, order, setOrder]);\r\n\r\n // biome-ignore lint/correctness/useExhaustiveDependencies: dependent on page and limit only\r\n const setPagination = useCallback(\r\n (updater: Updater<PaginationState>) => {\r\n // TanStack Table uses 0-based indexing, but URL uses 1-based\r\n const currentState = { pageIndex: page - 1, pageSize: limit };\r\n const next = typeof updater === \"function\" ? updater(currentState) : updater;\r\n // Convert back to 1-based for URL\r\n setPage((next.pageIndex ?? 0) + 1);\r\n setLimit(next.pageSize ?? 10);\r\n },\r\n [page, limit]\r\n );\r\n\r\n return useMemo(\r\n () => ({\r\n q: qRaw,\r\n setQ,\r\n filters,\r\n setFilters,\r\n granularity,\r\n setGranularity,\r\n sort,\r\n order,\r\n setSorting,\r\n sorting,\r\n page,\r\n limit,\r\n setPagination,\r\n pagination,\r\n grouping,\r\n setGrouping,\r\n }),\r\n [\r\n qRaw,\r\n setQ,\r\n filters,\r\n setFilters,\r\n granularity,\r\n setGranularity,\r\n sort,\r\n order,\r\n setSorting,\r\n sorting,\r\n page,\r\n limit,\r\n setPagination,\r\n pagination,\r\n grouping,\r\n setGrouping,\r\n ]\r\n );\r\n};\r\n"],"mappings":";;;;AAaA,MAAM,iBAAiB,aAA2B,UAAU,cAAc,MAAM,MAAM,CAAC,CAAC,YACtF,EAAE,CACH;AAED,MAAM,kBAAkB,eAAe,cAAc,CAAC,YAAY,EAAE,CAAC;;;;;;AA+BrE,MAAa,sBAAsB,WAAqC;CACtE,MAAM,KAAK,SAAkB,SAAS,GAAG,OAAO,GAAG,SAAS;CAE5D,MAAM,CAAC,MAAM,WAAW,cAAsB,EAAE,OAAO,EAAE,cAAc,YAAY,GAAG,CAAC;CACvF,MAAM,CAAC,OAAO,YAAY,cAAqB,EAAE,QAAQ,EAAE,qBAAqB,CAAC,OAAO,OAAO,CAAC,CAAC;CACjG,MAAM,CAAC,MAAM,WAAW,cAAsB,EAAE,OAAO,EAAE,eAAe,YAAY,EAAE,CAAC;CACvF,MAAM,CAAC,OAAO,YAAY,cAAsB,EAAE,QAAQ,EAAE,eAAe,YAAY,GAAG,CAAC;CAC3F,MAAM,CAAC,MAAM,WAAW,cAAc,EAAE,IAAI,EAAE,cAAc;CAC5D,MAAM,CAAC,SAAS,cAAc,cAA4B,EAAE,UAAU,EAAE,eAAe;CAEvF,MAAM,OAAO,aACV,UAAyB;AACnB,UAAQ,UAAU,MAAM,SAAS,OAAO,OAAO,MAAM;IAE5D,CAAC,QAAQ,CACV;CACD,MAAM,CAAC,aAAa,kBAAkB,cACpC,EAAE,cAAc,EAChB,qBAAqB;EAAC;EAAS;EAAU;EAAW;EAAS,CAAC,CAAC,YAAY,QAAQ,CACpF;CACD,MAAM,CAAC,aAAa,kBAAkB,cAAwB,EAAE,UAAU,EAAE,gBAAgB;CAC5F,MAAM,WAA0B;CAEhC,MAAM,cAAc,aACjB,YAAoC;EACnC,MAAM,OAAO,OAAO,YAAY,aAAa,QAAQ,YAAY,GAAG;AACpE,iBAAe,KAAK,SAAS,IAAI,OAAO,KAAK;IAE/C,CAAC,aAAa,eAAe,CAC9B;CAED,MAAM,UAAU,cAAc;AAC5B,MAAI,CAAC,KACH,QAAO,EAAE;AAGX,SAAO,CAAC;GAAE,IAAI;GAAM,OADG,SAAS,WACa;GAAQ,CAAC;IACrD,CAAC,MAAM,MAAM,CAAC;CAEjB,MAAM,aAAa,eAAe;EAAE,WAAW,OAAO;EAAG,UAAU;EAAO,GAAG,CAAC,MAAM,MAAM,CAAC;CAE3F,MAAM,aAAa,aAChB,YAAmC;EAOlC,MAAM,SADO,OAAO,YAAY,aAAa,QAJR,OACjC,CAAC;GAAE,IAAI;GAAM,OAAO,SAAS,WAAW;GAAQ,CAAC,GACjD,EAAE,CAE8D,GAAG,SACpD;AAEnB,MAAI,CAAC,SAAS,CAAC,MAAM,IAAI;AACvB,WAAQ,GAAG;AACX,YAAS,KAAK;AACd;;AAGF,UAAQ,MAAM,GAAG;AACjB,WAAS,MAAM,OAAO,SAAS,MAAM;IAEvC;EAAC;EAAM;EAAO;EAAS;EAAS,CACjC;AAGD,iBAAgB;AACd,MAAI,QAAQ,CAAC,MACX,UAAS,MAAM;IAEhB;EAAC;EAAM;EAAO;EAAS,CAAC;CAG3B,MAAM,gBAAgB,aACnB,YAAsC;EAErC,MAAM,eAAe;GAAE,WAAW,OAAO;GAAG,UAAU;GAAO;EAC7D,MAAM,OAAO,OAAO,YAAY,aAAa,QAAQ,aAAa,GAAG;AAErE,WAAS,KAAK,aAAa,KAAK,EAAE;AAClC,WAAS,KAAK,YAAY,GAAG;IAE/B,CAAC,MAAM,MAAM,CACd;AAED,QAAO,eACE;EACL,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF"}
|
|
1
|
+
{"version":3,"file":"useNuqsQueryParams.mjs","names":[],"sources":["../../../../../src/modules/table/hooks/useNuqsQueryParams.ts"],"sourcesContent":["import type { QueryFilter, QueryFilters } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport { filterSchema, filtersSchema } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport type { GroupingState, PaginationState, SortingState, Updater } from \"@tanstack/react-table\";\r\nimport {\r\n parseAsArrayOf,\r\n parseAsInteger,\r\n parseAsJson,\r\n parseAsString,\r\n parseAsStringLiteral,\r\n useQueryState,\r\n} from \"nuqs\";\r\nimport { useCallback, useEffect, useMemo } from \"react\";\r\nimport { z } from \"zod\";\r\n\r\n/** Each row: [columnId, type, method, value, valueTo?, endColumnId?] — all strings in the URL */\r\nconst filtersRawSchema = z.array(z.array(z.string()).min(4).max(6));\r\n\r\nconst parseAsFilterTuples = parseAsJson<string[][]>((value) =>\r\n filtersRawSchema.parse(value)\r\n).withDefault([]);\r\n\r\nconst parseAsGrouping = parseAsArrayOf(parseAsString).withDefault([]);\r\n\r\nconst NULLISH_METHODS: ReadonlySet<QueryFilter[\"method\"]> = new Set([\r\n \"isEmpty\",\r\n \"isNotEmpty\",\r\n \"is_null\",\r\n \"is_not_null\",\r\n]);\r\n\r\nfunction encodeFilterValue(filter: QueryFilter): string {\r\n if (NULLISH_METHODS.has(filter.method)) {\r\n return typeof filter.value === \"string\" ? filter.value : \"\";\r\n }\r\n const { type, method, value } = filter;\r\n switch (type) {\r\n case \"number\":\r\n return String(value as number);\r\n case \"boolean\":\r\n return (value as boolean) ? \"true\" : \"false\";\r\n case \"enum\":\r\n case \"jsonArray\":\r\n if (method === \"oneOf\" && Array.isArray(value)) {\r\n return JSON.stringify(value);\r\n }\r\n if (Array.isArray(value)) {\r\n return JSON.stringify(value);\r\n }\r\n return String(value);\r\n default:\r\n return String(value);\r\n }\r\n}\r\n\r\nfunction decodeFilterValue(\r\n type: QueryFilter[\"type\"],\r\n method: QueryFilter[\"method\"],\r\n valueStr: string\r\n): QueryFilter[\"value\"] {\r\n if (NULLISH_METHODS.has(method)) {\r\n return valueStr;\r\n }\r\n switch (type) {\r\n case \"number\": {\r\n const n = Number.parseFloat(valueStr);\r\n return Number.isNaN(n) ? 0 : n;\r\n }\r\n case \"boolean\":\r\n return valueStr === \"true\";\r\n case \"enum\":\r\n case \"jsonArray\":\r\n if (method === \"oneOf\") {\r\n try {\r\n const parsed = JSON.parse(valueStr) as unknown;\r\n return Array.isArray(parsed) ? parsed.map(String) : [];\r\n } catch {\r\n return [];\r\n }\r\n }\r\n if (valueStr.startsWith(\"[\")) {\r\n try {\r\n const parsed = JSON.parse(valueStr) as unknown;\r\n if (Array.isArray(parsed)) {\r\n return parsed.map(String);\r\n }\r\n } catch {\r\n /* use raw string */\r\n }\r\n }\r\n return valueStr;\r\n default:\r\n return valueStr;\r\n }\r\n}\r\n\r\n/** Builds URL tuple; omits optional tails when unused (endColumnId requires valueTo slot — may be \"\"). */\r\nfunction encodeFilterToTuple(filter: QueryFilter): string[] {\r\n const tuple: string[] = [filter.columnId, filter.type, filter.method, encodeFilterValue(filter)];\r\n const hasValueTo = filter.valueTo != null && filter.valueTo !== \"\";\r\n const hasEndColumnId = filter.endColumnId != null && filter.endColumnId !== \"\";\r\n\r\n if (hasValueTo && filter.valueTo != null) {\r\n tuple.push(filter.valueTo);\r\n }\r\n\r\n if (hasEndColumnId && filter.endColumnId != null) {\r\n if (!hasValueTo) {\r\n tuple.push(\"\");\r\n }\r\n tuple.push(filter.endColumnId);\r\n }\r\n\r\n return tuple;\r\n}\r\n\r\nfunction decodeTupleToFilter(parts: readonly string[]): QueryFilter | null {\r\n if (parts.length < 4 || parts.length > 6) {\r\n return null;\r\n }\r\n\r\n const [columnId, typeStr, methodStr, valueStr, valueToStr, endColumnIdStr] = parts;\r\n\r\n const typeParsed = filterSchema.shape.type.safeParse(typeStr);\r\n const methodParsed = filterSchema.shape.method.safeParse(methodStr);\r\n if (!typeParsed.success || !methodParsed.success) {\r\n return null;\r\n }\r\n\r\n const type = typeParsed.data;\r\n const method = methodParsed.data;\r\n const value = decodeFilterValue(type, method, valueStr);\r\n\r\n const candidate: QueryFilter = {\r\n columnId,\r\n type,\r\n method,\r\n value,\r\n };\r\n\r\n if (valueToStr !== undefined) {\r\n candidate.valueTo = valueToStr;\r\n }\r\n if (endColumnIdStr !== undefined) {\r\n candidate.endColumnId = endColumnIdStr;\r\n }\r\n\r\n const parsed = filterSchema.safeParse(candidate);\r\n return parsed.success ? parsed.data : null;\r\n}\r\n\r\nexport type Order = \"asc\" | \"desc\";\r\n\r\nexport type Granularity = \"daily\" | \"weekly\" | \"monthly\" | \"yearly\";\r\n\r\nexport interface NuqsQueryParams {\r\n /** Global search string from URL (`q`); absent when not in URL. */\r\n q: string | null;\r\n setQ: (value: string | null) => void;\r\n filters?: QueryFilters;\r\n setFilters?: (filters: QueryFilters) => void;\r\n granularity?: Granularity;\r\n setGranularity?: (value: Granularity) => void;\r\n sort?: string;\r\n order?: Order | null;\r\n setSorting?: (updater: Updater<SortingState>) => void;\r\n sorting?: SortingState;\r\n page?: number;\r\n limit?: number;\r\n setPagination?: (updater: Updater<PaginationState>) => void;\r\n pagination?: PaginationState;\r\n grouping: GroupingState;\r\n setGrouping: (updater: Updater<GroupingState>) => void;\r\n}\r\n\r\n/**\r\n * Hook to manage all query parameters via nuqs (URL query parameters)\r\n * Manages: `f` (filters as tuple arrays), `q`, `s`/`o`, `p`/`l`, `g`, `r`\r\n * Accepts an optional prefix to namespace params when multiple tables share a view.\r\n */\r\nexport const useNuqsQueryParams = (prefix?: string): NuqsQueryParams => {\r\n const k = (name: string) => (prefix ? `${prefix}_${name}` : name);\r\n\r\n const [sort, setSort] = useQueryState<string>(k(\"s\"), parseAsString.withDefault(\"\"));\r\n const [order, setOrder] = useQueryState<Order>(k(\"o\"), parseAsStringLiteral([\"asc\", \"desc\"]));\r\n const [page, setPage] = useQueryState<number>(k(\"p\"), parseAsInteger.withDefault(1));\r\n const [limit, setLimit] = useQueryState<number>(k(\"l\"), parseAsInteger.withDefault(10));\r\n const [qRaw, setQRaw] = useQueryState(k(\"q\"), parseAsString);\r\n const [filtersRaw, setFiltersRaw] = useQueryState<string[][]>(k(\"f\"), parseAsFilterTuples);\r\n\r\n const filters = useMemo((): QueryFilters => {\r\n const decoded = filtersRaw\r\n .map((row) => decodeTupleToFilter(row))\r\n .filter((f): f is QueryFilter => f != null);\r\n const parsed = filtersSchema.safeParse(decoded);\r\n return parsed.success ? parsed.data : [];\r\n }, [filtersRaw]);\r\n\r\n const setFilters = useCallback(\r\n (next: QueryFilters) => {\r\n void setFiltersRaw(next.length === 0 ? null : next.map(encodeFilterToTuple));\r\n },\r\n [setFiltersRaw]\r\n );\r\n\r\n const setQ = useCallback(\r\n (value: string | null) => {\r\n void setQRaw(value === \"\" || value == null ? null : value);\r\n },\r\n [setQRaw]\r\n );\r\n const [granularity, setGranularity] = useQueryState<Granularity>(\r\n k(\"r\"),\r\n parseAsStringLiteral([\"daily\", \"weekly\", \"monthly\", \"yearly\"]).withDefault(\"daily\")\r\n );\r\n const [groupingRaw, setGroupingRaw] = useQueryState<string[]>(k(\"g\"), parseAsGrouping);\r\n const grouping: GroupingState = groupingRaw;\r\n\r\n const setGrouping = useCallback(\r\n (updater: Updater<GroupingState>) => {\r\n const next = typeof updater === \"function\" ? updater(groupingRaw) : updater;\r\n setGroupingRaw(next.length > 0 ? next : null);\r\n },\r\n [groupingRaw, setGroupingRaw]\r\n );\r\n\r\n const sorting = useMemo(() => {\r\n if (!sort) {\r\n return [];\r\n }\r\n const effectiveOrder = order ?? \"asc\";\r\n return [{ id: sort, desc: effectiveOrder === \"desc\" }];\r\n }, [sort, order]);\r\n\r\n const pagination = useMemo(() => ({ pageIndex: page - 1, pageSize: limit }), [page, limit]);\r\n\r\n const setSorting = useCallback(\r\n (updater: Updater<SortingState>) => {\r\n const currentSorting: SortingState = sort\r\n ? [{ id: sort, desc: (order ?? \"asc\") === \"desc\" }]\r\n : [];\r\n\r\n const next = typeof updater === \"function\" ? updater(currentSorting) : updater;\r\n const first = next[0];\r\n\r\n if (!first || !first.id) {\r\n setSort(\"\");\r\n setOrder(null);\r\n return;\r\n }\r\n\r\n setSort(first.id);\r\n setOrder(first.desc ? \"desc\" : \"asc\");\r\n },\r\n [sort, order, setSort, setOrder]\r\n );\r\n\r\n useEffect(() => {\r\n if (sort && !order) {\r\n setOrder(\"asc\");\r\n }\r\n }, [sort, order, setOrder]);\r\n\r\n // biome-ignore lint/correctness/useExhaustiveDependencies: dependent on page and limit only\r\n const setPagination = useCallback(\r\n (updater: Updater<PaginationState>) => {\r\n const currentState = { pageIndex: page - 1, pageSize: limit };\r\n const next = typeof updater === \"function\" ? updater(currentState) : updater;\r\n setPage((next.pageIndex ?? 0) + 1);\r\n setLimit(next.pageSize ?? 10);\r\n },\r\n [page, limit]\r\n );\r\n\r\n return useMemo(\r\n () => ({\r\n q: qRaw,\r\n setQ,\r\n filters,\r\n setFilters,\r\n granularity,\r\n setGranularity,\r\n sort,\r\n order,\r\n setSorting,\r\n sorting,\r\n page,\r\n limit,\r\n setPagination,\r\n pagination,\r\n grouping,\r\n setGrouping,\r\n }),\r\n [\r\n qRaw,\r\n setQ,\r\n filters,\r\n setFilters,\r\n granularity,\r\n setGranularity,\r\n sort,\r\n order,\r\n setSorting,\r\n sorting,\r\n page,\r\n limit,\r\n setPagination,\r\n pagination,\r\n grouping,\r\n setGrouping,\r\n ]\r\n );\r\n};\r\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
let react = require("react");
|
|
3
2
|
let _tanstack_react_query = require("@tanstack/react-query");
|
|
3
|
+
let react = require("react");
|
|
4
4
|
//#region src/modules/table/hooks/useQueryWithParams.ts
|
|
5
5
|
const FETCH_ALL_LIMIT = 99999;
|
|
6
6
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m5kdev/frontend",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.11",
|
|
4
4
|
"license": "GPL-3.0-only",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"react": "19.2.1",
|
|
25
25
|
"react-dom": "19.2.1",
|
|
26
26
|
"zod": "4.2.1",
|
|
27
|
-
"@m5kdev/commons": "0.8.
|
|
27
|
+
"@m5kdev/commons": "0.8.11"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@heroui/react": "2.8.10",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"tsdown": "0.21.7",
|
|
37
37
|
"typescript": "5.9.2",
|
|
38
38
|
"vite": "7.0.4",
|
|
39
|
-
"@m5kdev/config": "0.8.
|
|
40
|
-
"@m5kdev/backend": "0.8.
|
|
39
|
+
"@m5kdev/config": "0.8.11",
|
|
40
|
+
"@m5kdev/backend": "0.8.11"
|
|
41
41
|
},
|
|
42
42
|
"exports": {
|
|
43
43
|
"./modules/auth/components/*": {
|