@xk2800/nextjs-template 0.7.0 → 0.7.1-beta.1
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/components/ui/file-upload.tsx +17 -7
- package/dist/activity/queries.d.mts +1 -1
- package/dist/activity/queries.d.ts +1 -1
- package/dist/auth/index.d.mts +2 -2
- package/dist/auth/index.d.ts +2 -2
- package/dist/db/index.d.mts +1 -1
- package/dist/db/index.d.ts +1 -1
- package/dist/db/schema.d.mts +1 -1
- package/dist/db/schema.d.ts +1 -1
- package/dist/{schema-BNSBWNjK.d.mts → schema-UuqxoOzS.d.mts} +1 -1
- package/dist/{schema-BNSBWNjK.d.ts → schema-UuqxoOzS.d.ts} +1 -1
- package/dist/settings/queries.d.mts +1 -1
- package/dist/settings/queries.d.ts +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,10 @@ type FileUploadProps = {
|
|
|
19
19
|
maxFiles?: number
|
|
20
20
|
maxSizeMB?: number
|
|
21
21
|
disabled?: boolean
|
|
22
|
+
/** Drop zone icon. Pass `null` to hide it. */
|
|
23
|
+
icon?: React.ReactNode
|
|
24
|
+
/** Drop zone text. Defaults to "Drag and drop files here" (or "a file" when `multiple` is false). */
|
|
25
|
+
label?: React.ReactNode
|
|
22
26
|
onFilesChange?: (files: File[]) => void
|
|
23
27
|
className?: string
|
|
24
28
|
}
|
|
@@ -42,6 +46,8 @@ function FileUpload({
|
|
|
42
46
|
maxFiles,
|
|
43
47
|
maxSizeMB,
|
|
44
48
|
disabled = false,
|
|
49
|
+
icon = <Upload className="size-6" />,
|
|
50
|
+
label,
|
|
45
51
|
onFilesChange,
|
|
46
52
|
className,
|
|
47
53
|
}: FileUploadProps) {
|
|
@@ -51,11 +57,15 @@ function FileUpload({
|
|
|
51
57
|
const cameraRef = React.useRef<HTMLInputElement>(null)
|
|
52
58
|
const galleryRef = React.useRef<HTMLInputElement>(null)
|
|
53
59
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
)
|
|
58
|
-
|
|
60
|
+
// Created and revoked in the same effect: with useMemo, Strict Mode's
|
|
61
|
+
// simulated unmount revoked the URLs and the remount reused the dead ones.
|
|
62
|
+
const [previews, setPreviews] = React.useState<(string | null)[]>([])
|
|
63
|
+
React.useEffect(() => {
|
|
64
|
+
const urls = files.map((f) => (f.type.startsWith("image/") ? URL.createObjectURL(f) : null))
|
|
65
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect -- object URLs must be created where they're revoked
|
|
66
|
+
setPreviews(urls)
|
|
67
|
+
return () => urls.forEach((url) => url && URL.revokeObjectURL(url))
|
|
68
|
+
}, [files])
|
|
59
69
|
|
|
60
70
|
const update = (next: File[]) => {
|
|
61
71
|
setFiles(next)
|
|
@@ -133,8 +143,8 @@ function FileUpload({
|
|
|
133
143
|
disabled && "opacity-50"
|
|
134
144
|
)}
|
|
135
145
|
>
|
|
136
|
-
|
|
137
|
-
<p>Drag and drop {multiple ? "files" : "a file"} here</p>
|
|
146
|
+
{icon}
|
|
147
|
+
<p>{label ?? `Drag and drop ${multiple ? "files" : "a file"} here`}</p>
|
|
138
148
|
{buttons}
|
|
139
149
|
</div>
|
|
140
150
|
) : (
|
package/dist/auth/index.d.mts
CHANGED
|
@@ -891,7 +891,7 @@ declare function createAuth(overrides?: AuthOverrides): better_auth.Auth<{
|
|
|
891
891
|
$Infer: {
|
|
892
892
|
body: {
|
|
893
893
|
permissions: {
|
|
894
|
-
readonly user?: ("
|
|
894
|
+
readonly user?: ("delete" | "update" | "list" | "set-role" | "create" | "ban" | "impersonate" | "impersonate-admins" | "set-password" | "set-email" | "get")[] | undefined;
|
|
895
895
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
896
896
|
};
|
|
897
897
|
} & {
|
|
@@ -3175,7 +3175,7 @@ declare const auth: better_auth.Auth<{
|
|
|
3175
3175
|
$Infer: {
|
|
3176
3176
|
body: {
|
|
3177
3177
|
permissions: {
|
|
3178
|
-
readonly user?: ("
|
|
3178
|
+
readonly user?: ("delete" | "update" | "list" | "set-role" | "create" | "ban" | "impersonate" | "impersonate-admins" | "set-password" | "set-email" | "get")[] | undefined;
|
|
3179
3179
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
3180
3180
|
};
|
|
3181
3181
|
} & {
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -891,7 +891,7 @@ declare function createAuth(overrides?: AuthOverrides): better_auth.Auth<{
|
|
|
891
891
|
$Infer: {
|
|
892
892
|
body: {
|
|
893
893
|
permissions: {
|
|
894
|
-
readonly user?: ("
|
|
894
|
+
readonly user?: ("delete" | "update" | "list" | "set-role" | "create" | "ban" | "impersonate" | "impersonate-admins" | "set-password" | "set-email" | "get")[] | undefined;
|
|
895
895
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
896
896
|
};
|
|
897
897
|
} & {
|
|
@@ -3175,7 +3175,7 @@ declare const auth: better_auth.Auth<{
|
|
|
3175
3175
|
$Infer: {
|
|
3176
3176
|
body: {
|
|
3177
3177
|
permissions: {
|
|
3178
|
-
readonly user?: ("
|
|
3178
|
+
readonly user?: ("delete" | "update" | "list" | "set-role" | "create" | "ban" | "impersonate" | "impersonate-admins" | "set-password" | "set-email" | "get")[] | undefined;
|
|
3179
3179
|
readonly session?: ("delete" | "list" | "revoke")[] | undefined;
|
|
3180
3180
|
};
|
|
3181
3181
|
} & {
|
package/dist/db/index.d.mts
CHANGED
package/dist/db/index.d.ts
CHANGED
package/dist/db/schema.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'drizzle-orm';
|
|
2
2
|
import 'drizzle-orm/pg-core';
|
|
3
|
-
export { A as ActivityActionEnum, R as RoleEnum, b as accounts, c as activityLogs, d as authThrottle, e as deviceFingerprints, f as errorRefs, p as passkeys, g as sessions, s as systemSettings, t as twoFactors, u as users, v as verifications } from '../schema-
|
|
3
|
+
export { A as ActivityActionEnum, R as RoleEnum, b as accounts, c as activityLogs, d as authThrottle, e as deviceFingerprints, f as errorRefs, p as passkeys, g as sessions, s as systemSettings, t as twoFactors, u as users, v as verifications } from '../schema-UuqxoOzS.mjs';
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'drizzle-orm';
|
|
2
2
|
import 'drizzle-orm/pg-core';
|
|
3
|
-
export { A as ActivityActionEnum, R as RoleEnum, b as accounts, c as activityLogs, d as authThrottle, e as deviceFingerprints, f as errorRefs, p as passkeys, g as sessions, s as systemSettings, t as twoFactors, u as users, v as verifications } from '../schema-
|
|
3
|
+
export { A as ActivityActionEnum, R as RoleEnum, b as accounts, c as activityLogs, d as authThrottle, e as deviceFingerprints, f as errorRefs, p as passkeys, g as sessions, s as systemSettings, t as twoFactors, u as users, v as verifications } from '../schema-UuqxoOzS.js';
|
|
@@ -1142,7 +1142,7 @@ declare const activityLogs: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
1142
1142
|
tableName: "activity_log";
|
|
1143
1143
|
dataType: "string";
|
|
1144
1144
|
columnType: "PgEnumColumn";
|
|
1145
|
-
data: "
|
|
1145
|
+
data: "login" | "logout" | "login_failed" | "password_changed" | "email_changed" | "profile_updated" | "session_revoked" | "user_deleted" | "user_banned" | "user_unbanned" | "role_changed" | "impersonation_started" | "impersonation_stopped" | "settings_changed" | "passkey_added" | "passkey_removed";
|
|
1146
1146
|
driverParam: string;
|
|
1147
1147
|
notNull: true;
|
|
1148
1148
|
hasDefault: false;
|
|
@@ -1142,7 +1142,7 @@ declare const activityLogs: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
|
1142
1142
|
tableName: "activity_log";
|
|
1143
1143
|
dataType: "string";
|
|
1144
1144
|
columnType: "PgEnumColumn";
|
|
1145
|
-
data: "
|
|
1145
|
+
data: "login" | "logout" | "login_failed" | "password_changed" | "email_changed" | "profile_updated" | "session_revoked" | "user_deleted" | "user_banned" | "user_unbanned" | "role_changed" | "impersonation_started" | "impersonation_stopped" | "settings_changed" | "passkey_added" | "passkey_removed";
|
|
1146
1146
|
driverParam: string;
|
|
1147
1147
|
notNull: true;
|
|
1148
1148
|
hasDefault: false;
|