@unisim/sdk 0.93.1 → 0.94.0
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/DropAnywhere.d.ts +38 -0
- package/dist/DropAnywhere.d.ts.map +1 -0
- package/dist/DropAnywhere.js +34 -0
- package/dist/DropAnywhere.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/useFileDrop.d.ts +49 -2
- package/dist/useFileDrop.d.ts.map +1 -1
- package/dist/useFileDrop.js +128 -7
- package/dist/useFileDrop.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The full-page hint shown while a file is dragged somewhere other than the
|
|
4
|
+
* drop target — the visible half of `useFileDrop`'s `pageWide`.
|
|
5
|
+
*
|
|
6
|
+
* A page that quietly accepts a drop anywhere is still a page that LOOKS like
|
|
7
|
+
* it only accepts one inside the circle: somebody hovering over the margin sees
|
|
8
|
+
* a ring light up 400px away and reasonably reads that as "not here, over
|
|
9
|
+
* there", then goes back to aiming. This says the quiet part, once, in the
|
|
10
|
+
* place they are actually looking.
|
|
11
|
+
*
|
|
12
|
+
* Drive it from `pageOver`, not `over` — over the target itself the ring is
|
|
13
|
+
* already answering, and covering it with a second answer is noise.
|
|
14
|
+
*
|
|
15
|
+
* ⚠️ Pointer events are off on every layer. This is drawn on top of the drop it
|
|
16
|
+
* is describing; anything here that swallows the pointer swallows the file.
|
|
17
|
+
* Inline styles rather than classes for the same reason `DropRing` uses them —
|
|
18
|
+
* the SDK ships no stylesheet, so a consumer needs no Tailwind config to make
|
|
19
|
+
* it look right.
|
|
20
|
+
*/
|
|
21
|
+
export interface DropAnywhereProps {
|
|
22
|
+
/** Render nothing when false. */
|
|
23
|
+
show: boolean;
|
|
24
|
+
/** The headline. Keep it an instruction. */
|
|
25
|
+
title?: string;
|
|
26
|
+
/** The second line — what this page will take, in the user's words. */
|
|
27
|
+
hint?: ReactNode;
|
|
28
|
+
/** Defaults to the UNI·SIM orange. */
|
|
29
|
+
accent?: string;
|
|
30
|
+
/** Replaces the default upload arrow. */
|
|
31
|
+
icon?: ReactNode;
|
|
32
|
+
/** Above app chrome, below nothing else. Raise it if a dialog outranks it. */
|
|
33
|
+
zIndex?: number;
|
|
34
|
+
className?: string;
|
|
35
|
+
style?: CSSProperties;
|
|
36
|
+
}
|
|
37
|
+
export declare function DropAnywhere({ show, title, hint, accent, icon, zIndex, className, style, }: DropAnywhereProps): import("react/jsx-runtime").JSX.Element | null;
|
|
38
|
+
//# sourceMappingURL=DropAnywhere.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropAnywhere.d.ts","sourceRoot":"","sources":["../src/DropAnywhere.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,KAAuB,EACvB,IAAI,EACJ,MAAkB,EAClB,IAAI,EACJ,MAAW,EACX,SAAS,EACT,KAAK,GACN,EAAE,iBAAiB,kDAkEnB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
export function DropAnywhere({ show, title = 'Drop anywhere', hint, accent = '#FE8C01', icon, zIndex = 60, className, style, }) {
|
|
4
|
+
if (!show)
|
|
5
|
+
return null;
|
|
6
|
+
return (_jsxs("div", { className: className, style: {
|
|
7
|
+
position: 'fixed',
|
|
8
|
+
inset: 0,
|
|
9
|
+
zIndex,
|
|
10
|
+
display: 'flex',
|
|
11
|
+
alignItems: 'center',
|
|
12
|
+
justifyContent: 'center',
|
|
13
|
+
// The tint is deliberately light. It has to read as "this page will
|
|
14
|
+
// take it" while the page underneath stays recognisable — a heavy
|
|
15
|
+
// scrim looks like a modal, and a modal looks like something to cancel.
|
|
16
|
+
background: `${accent}22`,
|
|
17
|
+
pointerEvents: 'none',
|
|
18
|
+
...style,
|
|
19
|
+
}, children: [_jsx("div", { style: {
|
|
20
|
+
position: 'absolute',
|
|
21
|
+
inset: '1rem',
|
|
22
|
+
border: `4px dashed ${accent}`,
|
|
23
|
+
borderRadius: '1rem',
|
|
24
|
+
} }), _jsxs("div", { style: {
|
|
25
|
+
display: 'flex',
|
|
26
|
+
alignItems: 'center',
|
|
27
|
+
gap: '0.75rem',
|
|
28
|
+
padding: '1.25rem 1.5rem',
|
|
29
|
+
borderRadius: '0.75rem',
|
|
30
|
+
background: '#ffffff',
|
|
31
|
+
boxShadow: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',
|
|
32
|
+
}, children: [icon ?? (_jsxs("svg", { viewBox: "0 0 24 24", width: "32", height: "32", fill: "none", stroke: accent, strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "M12 16V4" }), _jsx("path", { d: "M7 9l5-5 5 5" }), _jsx("path", { d: "M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2" })] })), _jsxs("div", { children: [_jsx("div", { style: { fontSize: '14px', fontWeight: 700, color: '#0f172a' }, children: title }), hint != null && (_jsx("div", { style: { marginTop: '2px', fontSize: '11.5px', color: '#64748b' }, children: hint }))] })] })] }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=DropAnywhere.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropAnywhere.js","sourceRoot":"","sources":["../src/DropAnywhere.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAwCZ,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,KAAK,GAAG,eAAe,EACvB,IAAI,EACJ,MAAM,GAAG,SAAS,EAClB,IAAI,EACJ,MAAM,GAAG,EAAE,EACX,SAAS,EACT,KAAK,GACa;IAClB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtB,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC;YACR,MAAM;YACN,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,oEAAoE;YACpE,kEAAkE;YAClE,wEAAwE;YACxE,UAAU,EAAE,GAAG,MAAM,IAAI;YACzB,aAAa,EAAE,MAAM;YACrB,GAAG,KAAK;SACT,aAED,cACE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,cAAc,MAAM,EAAE;oBAC9B,YAAY,EAAE,MAAM;iBACrB,GACD,EACF,eACE,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,SAAS;oBACd,OAAO,EAAE,gBAAgB;oBACzB,YAAY,EAAE,SAAS;oBACvB,UAAU,EAAE,SAAS;oBACrB,SAAS,EAAE,qEAAqE;iBACjF,aAEA,IAAI,IAAI,CACP,eACE,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,MAAM,EACd,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,aAElB,eAAM,CAAC,EAAC,UAAU,GAAG,EACrB,eAAM,CAAC,EAAC,cAAc,GAAG,EACzB,eAAM,CAAC,EAAC,2CAA2C,GAAG,IAClD,CACP,EACD,0BACE,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAG,KAAK,GAAO,EACjF,IAAI,IAAI,IAAI,IAAI,CACf,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,YAAG,IAAI,GAAO,CACrF,IACG,IACF,IACF,CACP,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -67,6 +67,8 @@ export { versionedName, parseVersionedName } from './filenames.js';
|
|
|
67
67
|
export type { VersionedNameOptions } from './filenames.js';
|
|
68
68
|
export { DropRing } from './DropRing.js';
|
|
69
69
|
export type { DropRingProps } from './DropRing.js';
|
|
70
|
+
export { DropAnywhere } from './DropAnywhere.js';
|
|
71
|
+
export type { DropAnywhereProps } from './DropAnywhere.js';
|
|
70
72
|
export { useOrgMembers, useOrgSeats, useAuditLog, assignSeat, revokeSeat, reassignSeat, useIsPlatformAdmin, usePlatformAdminOrgs, useEntitlement, createOrganisation, updateSubscription, setProductEnterpriseAccess, setErgoEnterpriseAccess, findUserByEmail, addOrgMember, removeOrgMember, softDeleteOrg, listAccessCodes, createAccessCode, redeemAccessCode, PLATFORM_ADMIN_EMAIL, } from './admin.js';
|
|
71
73
|
export type { UseOrgMembersResult, UseOrgSeatsResult, UseAuditLogOptions, UseIsPlatformAdminResult, UsePlatformAdminOrgsResult, PlatformAdminOrgRow, EntitlementVerdict, CreateOrganisationInput, UpdateSubscriptionInput, AddOrgMemberInput, AccessCode, CreateAccessCodeInput, RedeemAccessCodeResult, } from './admin.js';
|
|
72
74
|
export type { ProductCode, SubTier, OrgRole, SeatStatus, AccessSource, Profile, Organisation, OrgBranding, OrgMember, Subscription, Seat, SeatPool, ChangelogEntry, ChangelogRelease, ChangelogFeed, AuditLogEntry, Person, PersonRole, Team, TeamMembership, Place, PlaceType, Project, ProjectStatus, } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -51,5 +51,8 @@ export { useFileDrop } from './useFileDrop.js';
|
|
|
51
51
|
// them APPENDED it, so a round trip produced `report-annotated-annotated.pdf`.
|
|
52
52
|
export { versionedName, parseVersionedName } from './filenames.js';
|
|
53
53
|
export { DropRing } from './DropRing.js';
|
|
54
|
+
// The other half of `pageWide`: the hint that says the page will take a drop
|
|
55
|
+
// aimed nowhere near the ring.
|
|
56
|
+
export { DropAnywhere } from './DropAnywhere.js';
|
|
54
57
|
export { useOrgMembers, useOrgSeats, useAuditLog, assignSeat, revokeSeat, reassignSeat, useIsPlatformAdmin, usePlatformAdminOrgs, useEntitlement, createOrganisation, updateSubscription, setProductEnterpriseAccess, setErgoEnterpriseAccess, findUserByEmail, addOrgMember, removeOrgMember, softDeleteOrg, listAccessCodes, createAccessCode, redeemAccessCode, PLATFORM_ADMIN_EMAIL, } from './admin.js';
|
|
55
58
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/useFileDrop.d.ts
CHANGED
|
@@ -19,6 +19,11 @@ import type { DragEvent, KeyboardEvent } from 'react';
|
|
|
19
19
|
*
|
|
20
20
|
* Neither is hard. Both are invisible until somebody tries the exact gesture,
|
|
21
21
|
* which is precisely the sort of thing that should be written once.
|
|
22
|
+
*
|
|
23
|
+
* The third, added later, is a whole-page drop — see `pageWide` below. PDF and
|
|
24
|
+
* Images had each hand-rolled it against `window` before it lived here, and the
|
|
25
|
+
* two copies disagreed about the one detail that matters (what happens when a
|
|
26
|
+
* drop lands inside a zone as well).
|
|
22
27
|
*/
|
|
23
28
|
export interface UseFileDropOptions {
|
|
24
29
|
/** Called with a non-empty list. Never called with zero files. */
|
|
@@ -36,10 +41,46 @@ export interface UseFileDropOptions {
|
|
|
36
41
|
/** The accessible name for the zone when `clickToBrowse` is on. */
|
|
37
42
|
label?: string;
|
|
38
43
|
disabled?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Also take a drop that lands ANYWHERE on the page, not only inside the zone.
|
|
46
|
+
*
|
|
47
|
+
* The circle is a target, not a wall. Someone who has dragged a file across
|
|
48
|
+
* from a folder has already said what they want; making them land it inside a
|
|
49
|
+
* 300px ring — and silently doing nothing, or worse letting the browser
|
|
50
|
+
* navigate away and lose the page, when they miss — is a dexterity test the
|
|
51
|
+
* app has no reason to set. With this on, the whole document is the target:
|
|
52
|
+
* `over` goes true as soon as a file drag enters the page, so the ring lights
|
|
53
|
+
* up and says "yes, anywhere", and a miss lands the file all the same.
|
|
54
|
+
*
|
|
55
|
+
* Three things it deliberately does NOT do:
|
|
56
|
+
*
|
|
57
|
+
* • **Nothing that isn't a file.** Every handler bails unless the drag
|
|
58
|
+
* carries `Files`, so dragging text, a link, or one of the app's own
|
|
59
|
+
* sortable cards never lights the ring.
|
|
60
|
+
* • **Never take a drop twice.** A drop that lands inside any zone from this
|
|
61
|
+
* hook — this one or another — is left to that zone's own handler. The
|
|
62
|
+
* page-wide listener only picks up what nothing else caught.
|
|
63
|
+
* • **Never fight another page-wide zone.** They register on a stack and the
|
|
64
|
+
* most recently mounted one wins, so a tab switch or a dialog hands the
|
|
65
|
+
* page over rather than both of them taking the same file.
|
|
66
|
+
*/
|
|
67
|
+
pageWide?: boolean;
|
|
39
68
|
}
|
|
40
69
|
export interface FileDrop {
|
|
41
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* True while a file drag is over the zone — or, with `pageWide`, anywhere
|
|
72
|
+
* over the page. Drive your own highlight from it.
|
|
73
|
+
*/
|
|
42
74
|
over: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* `pageWide` only: the drag is on the page but NOT on the zone itself.
|
|
77
|
+
*
|
|
78
|
+
* `over` is already true here, so the ring highlights either way; this is for
|
|
79
|
+
* the extra hint that only makes sense when the pointer is somewhere else —
|
|
80
|
+
* a full-screen "drop anywhere" overlay would be noise directly over a target
|
|
81
|
+
* that is lighting up on its own.
|
|
82
|
+
*/
|
|
83
|
+
pageOver: boolean;
|
|
43
84
|
/** Open the file picker — wire this to your own button if you have one. */
|
|
44
85
|
open: () => void;
|
|
45
86
|
/** Spread onto the drop target. */
|
|
@@ -53,6 +94,12 @@ export interface FileDrop {
|
|
|
53
94
|
role?: 'button';
|
|
54
95
|
tabIndex?: number;
|
|
55
96
|
'aria-label'?: string;
|
|
97
|
+
/**
|
|
98
|
+
* How the page-wide listener recognises a drop that a zone has already
|
|
99
|
+
* taken. Marked on EVERY zone, not just page-wide ones, because the zone
|
|
100
|
+
* that must be skipped is usually not the one that is page-wide.
|
|
101
|
+
*/
|
|
102
|
+
'data-unisim-dropzone': '';
|
|
56
103
|
};
|
|
57
104
|
/**
|
|
58
105
|
* Spread onto a visually hidden `<input type="file">`.
|
|
@@ -74,5 +121,5 @@ export interface FileDrop {
|
|
|
74
121
|
}) => void;
|
|
75
122
|
};
|
|
76
123
|
}
|
|
77
|
-
export declare function useFileDrop({ onFiles, accept, multiple, clickToBrowse, label, disabled, }: UseFileDropOptions): FileDrop;
|
|
124
|
+
export declare function useFileDrop({ onFiles, accept, multiple, clickToBrowse, label, disabled, pageWide, }: UseFileDropOptions): FileDrop;
|
|
78
125
|
//# sourceMappingURL=useFileDrop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFileDrop.d.ts","sourceRoot":"","sources":["../src/useFileDrop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErD
|
|
1
|
+
{"version":3,"file":"useFileDrop.d.ts","sourceRoot":"","sources":["../src/useFileDrop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAA;IACb;;;;;;;OAOG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,mCAAmC;IACnC,aAAa,EAAE;QACb,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;QACnC,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;QAClC,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;QACnC,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;QAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;QACpB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAA;QACtC,IAAI,CAAC,EAAE,QAAQ,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB;;;;WAIG;QACH,sBAAsB,EAAE,EAAE,CAAA;KAC3B,CAAA;IACD;;;;;;;;;OASG;IACH,UAAU,EAAE;QACV,GAAG,EAAE,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAA;QAC1C,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,OAAO,CAAA;QACjB,QAAQ,EAAE,CAAC,CAAC,EAAE;YAAE,MAAM,EAAE,gBAAgB,CAAA;SAAE,KAAK,IAAI,CAAA;KACpD,CAAA;CACF;AAyGD,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,MAAM,EACN,QAAe,EACf,aAAoB,EACpB,KAA6C,EAC7C,QAAgB,EAChB,QAAgB,GACjB,EAAE,kBAAkB,GAAG,QAAQ,CA2G/B"}
|
package/dist/useFileDrop.js
CHANGED
|
@@ -1,11 +1,103 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { useCallback, useRef, useState } from 'react';
|
|
3
|
-
|
|
2
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Every mounted `pageWide` zone, oldest first — one set of window listeners for
|
|
5
|
+
* all of them rather than a set each, so N zones cannot each preventDefault and
|
|
6
|
+
* each take the same file.
|
|
7
|
+
*/
|
|
8
|
+
const pageZones = [];
|
|
9
|
+
/** Same depth-counter trick as a single zone, but for the whole document. */
|
|
10
|
+
let pageDepth = 0;
|
|
11
|
+
let listening = false;
|
|
12
|
+
function dragHasFiles(e) {
|
|
13
|
+
const types = e.dataTransfer?.types;
|
|
14
|
+
return types ? Array.from(types).indexOf('Files') !== -1 : false;
|
|
15
|
+
}
|
|
16
|
+
/** The zone a page-wide drop belongs to: the last one mounted that can take it. */
|
|
17
|
+
function activeZone() {
|
|
18
|
+
for (let i = pageZones.length - 1; i >= 0; i -= 1) {
|
|
19
|
+
const zone = pageZones[i];
|
|
20
|
+
if (zone && !zone.isDisabled())
|
|
21
|
+
return zone;
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
function inAnyZone(target) {
|
|
26
|
+
return target instanceof Element && target.closest('[data-unisim-dropzone]') !== null;
|
|
27
|
+
}
|
|
28
|
+
function setAllOver(over) {
|
|
29
|
+
for (const zone of pageZones)
|
|
30
|
+
zone.setOver(over);
|
|
31
|
+
}
|
|
32
|
+
function onPageDragEnter(e) {
|
|
33
|
+
if (!dragHasFiles(e))
|
|
34
|
+
return;
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
pageDepth += 1;
|
|
37
|
+
setAllOver(true);
|
|
38
|
+
}
|
|
39
|
+
function onPageDragOver(e) {
|
|
40
|
+
if (!dragHasFiles(e))
|
|
41
|
+
return;
|
|
42
|
+
// The one line that stops the browser from navigating to the dropped file and
|
|
43
|
+
// throwing away the page — which, in a local-first app, means throwing away
|
|
44
|
+
// whatever was not saved. It is worth having even for a drop nothing takes.
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
}
|
|
47
|
+
function onPageDragLeave() {
|
|
48
|
+
pageDepth = Math.max(0, pageDepth - 1);
|
|
49
|
+
if (pageDepth === 0)
|
|
50
|
+
setAllOver(false);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* ⚠️ Capture phase, and separate from the drop handler below on purpose. A zone
|
|
54
|
+
* that stops the event — several apps do, to keep their own window listener from
|
|
55
|
+
* double-loading a file — kills the bubble-phase handler, and with it the reset
|
|
56
|
+
* that clears the highlight. Capture runs before any of them and cannot be
|
|
57
|
+
* suppressed, so the ring always comes back down.
|
|
58
|
+
*/
|
|
59
|
+
function onPageDropCapture() {
|
|
60
|
+
pageDepth = 0;
|
|
61
|
+
setAllOver(false);
|
|
62
|
+
}
|
|
63
|
+
function onPageDrop(e) {
|
|
64
|
+
if (!dragHasFiles(e))
|
|
65
|
+
return;
|
|
66
|
+
e.preventDefault();
|
|
67
|
+
// Landed inside a zone — that zone's own handler has it. Taking it here as
|
|
68
|
+
// well is how one file becomes two.
|
|
69
|
+
if (inAnyZone(e.target))
|
|
70
|
+
return;
|
|
71
|
+
activeZone()?.take(e.dataTransfer?.files);
|
|
72
|
+
}
|
|
73
|
+
function listen() {
|
|
74
|
+
if (listening || typeof window === 'undefined')
|
|
75
|
+
return;
|
|
76
|
+
listening = true;
|
|
77
|
+
window.addEventListener('dragenter', onPageDragEnter);
|
|
78
|
+
window.addEventListener('dragover', onPageDragOver);
|
|
79
|
+
window.addEventListener('dragleave', onPageDragLeave);
|
|
80
|
+
window.addEventListener('drop', onPageDropCapture, true);
|
|
81
|
+
window.addEventListener('drop', onPageDrop);
|
|
82
|
+
}
|
|
83
|
+
function unlisten() {
|
|
84
|
+
if (!listening || typeof window === 'undefined')
|
|
85
|
+
return;
|
|
86
|
+
listening = false;
|
|
87
|
+
pageDepth = 0;
|
|
88
|
+
window.removeEventListener('dragenter', onPageDragEnter);
|
|
89
|
+
window.removeEventListener('dragover', onPageDragOver);
|
|
90
|
+
window.removeEventListener('dragleave', onPageDragLeave);
|
|
91
|
+
window.removeEventListener('drop', onPageDropCapture, true);
|
|
92
|
+
window.removeEventListener('drop', onPageDrop);
|
|
93
|
+
}
|
|
94
|
+
export function useFileDrop({ onFiles, accept, multiple = true, clickToBrowse = true, label = 'Drop files here, or click to browse', disabled = false, pageWide = false, }) {
|
|
4
95
|
const inputRef = useRef(null);
|
|
5
96
|
const setInputRef = useCallback((el) => {
|
|
6
97
|
inputRef.current = el;
|
|
7
98
|
}, []);
|
|
8
|
-
const [
|
|
99
|
+
const [zoneOver, setZoneOver] = useState(false);
|
|
100
|
+
const [pageOver, setPageOver] = useState(false);
|
|
9
101
|
// How many nested elements the drag is currently inside. See the note above:
|
|
10
102
|
// moving between children fires leave on the old one before enter on the new,
|
|
11
103
|
// so a boolean flickers and a counter does not.
|
|
@@ -15,23 +107,52 @@ export function useFileDrop({ onFiles, accept, multiple = true, clickToBrowse =
|
|
|
15
107
|
if (list.length > 0)
|
|
16
108
|
void onFiles(list);
|
|
17
109
|
}, [onFiles]);
|
|
110
|
+
// Read through refs so registering does not depend on the caller memoising
|
|
111
|
+
// `onFiles`. Re-registering on every render would reorder the stack — and the
|
|
112
|
+
// stack is what decides which zone owns the page.
|
|
113
|
+
const takeRef = useRef(take);
|
|
114
|
+
takeRef.current = take;
|
|
115
|
+
const disabledRef = useRef(disabled);
|
|
116
|
+
disabledRef.current = disabled;
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
if (!pageWide)
|
|
119
|
+
return;
|
|
120
|
+
const zone = {
|
|
121
|
+
take: (files) => takeRef.current(files),
|
|
122
|
+
setOver: setPageOver,
|
|
123
|
+
isDisabled: () => disabledRef.current,
|
|
124
|
+
};
|
|
125
|
+
pageZones.push(zone);
|
|
126
|
+
listen();
|
|
127
|
+
return () => {
|
|
128
|
+
const i = pageZones.indexOf(zone);
|
|
129
|
+
if (i !== -1)
|
|
130
|
+
pageZones.splice(i, 1);
|
|
131
|
+
if (pageZones.length === 0)
|
|
132
|
+
unlisten();
|
|
133
|
+
};
|
|
134
|
+
}, [pageWide]);
|
|
18
135
|
const open = useCallback(() => {
|
|
19
136
|
if (!disabled)
|
|
20
137
|
inputRef.current?.click();
|
|
21
138
|
}, [disabled]);
|
|
22
139
|
const reset = () => {
|
|
23
140
|
depth.current = 0;
|
|
24
|
-
|
|
141
|
+
setZoneOver(false);
|
|
25
142
|
};
|
|
26
143
|
return {
|
|
27
|
-
over,
|
|
144
|
+
over: zoneOver || pageOver,
|
|
145
|
+
// On the zone the ring is already answering for itself; the hint is for
|
|
146
|
+
// everywhere else.
|
|
147
|
+
pageOver: pageOver && !zoneOver,
|
|
28
148
|
open,
|
|
29
149
|
dropzoneProps: {
|
|
150
|
+
'data-unisim-dropzone': '',
|
|
30
151
|
onDragEnter: (e) => {
|
|
31
152
|
e.preventDefault();
|
|
32
153
|
depth.current += 1;
|
|
33
154
|
if (!disabled)
|
|
34
|
-
|
|
155
|
+
setZoneOver(true);
|
|
35
156
|
},
|
|
36
157
|
// Called continuously while the drag is inside. preventDefault on BOTH
|
|
37
158
|
// this and enter is what tells the browser a drop is allowed here; miss
|
|
@@ -41,7 +162,7 @@ export function useFileDrop({ onFiles, accept, multiple = true, clickToBrowse =
|
|
|
41
162
|
e.preventDefault();
|
|
42
163
|
depth.current = Math.max(0, depth.current - 1);
|
|
43
164
|
if (depth.current === 0)
|
|
44
|
-
|
|
165
|
+
setZoneOver(false);
|
|
45
166
|
},
|
|
46
167
|
onDrop: (e) => {
|
|
47
168
|
e.preventDefault();
|
package/dist/useFileDrop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFileDrop.js","sourceRoot":"","sources":["../src/useFileDrop.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useFileDrop.js","sourceRoot":"","sources":["../src/useFileDrop.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED