@noya-app/noya-api-client-react 0.1.46 → 0.1.48
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/.turbo/turbo-build.log +17 -18
- package/CHANGELOG.md +15 -0
- package/dist/index.d.mts +60 -1
- package/dist/index.d.ts +60 -1
- package/dist/index.js +132 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +128 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/react/hooks.ts +205 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
[34mCLI[39m
|
|
4
|
-
[34mCLI[39m
|
|
5
|
-
[34mCLI[39m
|
|
6
|
-
[
|
|
7
|
-
[
|
|
8
|
-
[
|
|
9
|
-
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
[32mESM[39m
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
DTS dist/index.d.mts 15.78 KB
|
|
1
|
+
$ tsup src/index.ts --format cjs,esm --dts --sourcemap
|
|
2
|
+
[34mCLI[39m Building entry: src/index.ts
|
|
3
|
+
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
4
|
+
[34mCLI[39m tsup v8.3.5
|
|
5
|
+
[34mCLI[39m Target: esnext
|
|
6
|
+
[34mCJS[39m Build start
|
|
7
|
+
[34mESM[39m Build start
|
|
8
|
+
[34mDTS[39m Build start
|
|
9
|
+
[32mCJS[39m [1mdist/index.js [22m[32m540.31 KB[39m
|
|
10
|
+
[32mCJS[39m [1mdist/index.js.map [22m[32m1.43 MB[39m
|
|
11
|
+
[32mCJS[39m ⚡️ Build success in 6095ms
|
|
12
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m531.64 KB[39m
|
|
13
|
+
[32mESM[39m [1mdist/index.mjs.map [22m[32m1.43 MB[39m
|
|
14
|
+
[32mESM[39m ⚡️ Build success in 6096ms
|
|
15
|
+
[32mDTS[39m ⚡️ Build success in 75545ms
|
|
16
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m17.73 KB[39m
|
|
17
|
+
[32mDTS[39m [1mdist/index.d.mts [22m[32m17.73 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @noya-app/noya-api-client-react
|
|
2
2
|
|
|
3
|
+
## 0.1.48
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- ef15878: Update packages
|
|
8
|
+
- Updated dependencies [ef15878]
|
|
9
|
+
- @noya-app/noya-api@0.1.48
|
|
10
|
+
|
|
11
|
+
## 0.1.47
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 900b8f3: Bump packages
|
|
16
|
+
- @noya-app/noya-api@0.1.47
|
|
17
|
+
|
|
3
18
|
## 0.1.46
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -396,9 +396,28 @@ declare function useNoyaWorkspaces(): {
|
|
|
396
396
|
};
|
|
397
397
|
role: "OWNER" | "ADMIN" | "MEMBER";
|
|
398
398
|
}[];
|
|
399
|
+
settings?: {
|
|
400
|
+
defaultFileWorkspaceAccess: "private" | "read" | "write";
|
|
401
|
+
} | null | undefined;
|
|
399
402
|
}[];
|
|
400
403
|
loading: boolean;
|
|
401
404
|
};
|
|
405
|
+
type WorkspaceMemberInfo = {
|
|
406
|
+
userId: string;
|
|
407
|
+
name: string | null;
|
|
408
|
+
email: string | null;
|
|
409
|
+
image: string | null;
|
|
410
|
+
role: "OWNER" | "ADMIN" | "MEMBER";
|
|
411
|
+
};
|
|
412
|
+
/**
|
|
413
|
+
* Hook to get workspace members for a specific workspace.
|
|
414
|
+
* Returns the members array and a lookup map for easy access by userId.
|
|
415
|
+
*/
|
|
416
|
+
declare function useNoyaWorkspaceMembers(workspaceId: string): {
|
|
417
|
+
members: WorkspaceMemberInfo[];
|
|
418
|
+
membersById: Map<string, WorkspaceMemberInfo>;
|
|
419
|
+
loading: boolean;
|
|
420
|
+
};
|
|
402
421
|
declare function useNoyaMultiplayerRoomToken(fileId: string): {
|
|
403
422
|
access: "read" | "write";
|
|
404
423
|
} | undefined;
|
|
@@ -462,6 +481,46 @@ declare function useNoyaTemplates(): {
|
|
|
462
481
|
}[];
|
|
463
482
|
loading: boolean;
|
|
464
483
|
};
|
|
484
|
+
type WorkspaceRole = "OWNER" | "ADMIN" | "MEMBER";
|
|
485
|
+
type WorkspaceAccessInfo = {
|
|
486
|
+
isMember: boolean;
|
|
487
|
+
role: WorkspaceRole | null;
|
|
488
|
+
isOwner: boolean;
|
|
489
|
+
isAdmin: boolean;
|
|
490
|
+
workspaceId: string;
|
|
491
|
+
loading: boolean;
|
|
492
|
+
};
|
|
493
|
+
/**
|
|
494
|
+
* Get workspace membership and role information for the current user.
|
|
495
|
+
* Returns workspace access details including membership status and role.
|
|
496
|
+
*/
|
|
497
|
+
declare function useWorkspaceAccess(workspaceId: string): WorkspaceAccessInfo;
|
|
498
|
+
type FileAccessSource = "owner" | "workspace" | "public" | "none";
|
|
499
|
+
type FileAccessInfo = {
|
|
500
|
+
isOwner: boolean;
|
|
501
|
+
canView: boolean;
|
|
502
|
+
canEdit: boolean;
|
|
503
|
+
accessSource: FileAccessSource;
|
|
504
|
+
loading: boolean;
|
|
505
|
+
};
|
|
506
|
+
type FileWithAccess = {
|
|
507
|
+
user?: {
|
|
508
|
+
id: string;
|
|
509
|
+
} | null;
|
|
510
|
+
access?: NoyaAPI.FileAccess;
|
|
511
|
+
workspaceAccess?: NoyaAPI.FileAccess;
|
|
512
|
+
workspaceId?: string;
|
|
513
|
+
};
|
|
514
|
+
/**
|
|
515
|
+
* Get file access permissions for the current user.
|
|
516
|
+
* Considers ownership, workspace membership, and public access settings.
|
|
517
|
+
*/
|
|
518
|
+
declare function useFileAccess(file: FileWithAccess | null | undefined): FileAccessInfo;
|
|
519
|
+
declare function useIsFileOwner(file: {
|
|
520
|
+
user?: {
|
|
521
|
+
id: string;
|
|
522
|
+
} | null;
|
|
523
|
+
} | null | undefined): boolean;
|
|
465
524
|
|
|
466
525
|
type GetRowType<TTable extends Table<EntitySchema>> = Static<TTable["schema"]>;
|
|
467
526
|
type GetSelectConfig<TTable extends Table<EntitySchema>> = SelectConfig<GetRowType<TTable>[]>;
|
|
@@ -518,4 +577,4 @@ declare function useActivityEventsList<Config extends SelectConfig<ActivityEvent
|
|
|
518
577
|
}, config?: Config) => void;
|
|
519
578
|
};
|
|
520
579
|
|
|
521
|
-
export { NoyaAPIProvider, useActivityEventsList, useFileList, useFileListItem, useIsBeta, useMetadata, useNetworkRequests, useNoyaAssets, useNoyaAssetsByFileVersionId, useNoyaBilling, useNoyaClient, useNoyaClientOrFallback, useNoyaCreators, useNoyaDeployments, useNoyaEmailLists, useNoyaMultiplayerRoomToken, useNoyaOwnedFileVersions, useNoyaPersonalAccessTokens, useNoyaSecrets, useNoyaSession, useNoyaSite, useNoyaSites, useNoyaTags, useNoyaTemplates, useNoyaTools, useNoyaUserData, useNoyaWorkspaceBilling, useNoyaWorkspaceInvitations, useNoyaWorkspaces, useOptionalNoyaClient, useOptionalNoyaCreators, useOptionalNoyaSession, useOptionalNoyaTags, useOptionalNoyaTools, useOptionalNoyaUserData, useResourcesList, useTable, useUser };
|
|
580
|
+
export { type FileAccessInfo, type FileAccessSource, NoyaAPIProvider, type WorkspaceAccessInfo, type WorkspaceMemberInfo, type WorkspaceRole, useActivityEventsList, useFileAccess, useFileList, useFileListItem, useIsBeta, useIsFileOwner, useMetadata, useNetworkRequests, useNoyaAssets, useNoyaAssetsByFileVersionId, useNoyaBilling, useNoyaClient, useNoyaClientOrFallback, useNoyaCreators, useNoyaDeployments, useNoyaEmailLists, useNoyaMultiplayerRoomToken, useNoyaOwnedFileVersions, useNoyaPersonalAccessTokens, useNoyaSecrets, useNoyaSession, useNoyaSite, useNoyaSites, useNoyaTags, useNoyaTemplates, useNoyaTools, useNoyaUserData, useNoyaWorkspaceBilling, useNoyaWorkspaceInvitations, useNoyaWorkspaceMembers, useNoyaWorkspaces, useOptionalNoyaClient, useOptionalNoyaCreators, useOptionalNoyaSession, useOptionalNoyaTags, useOptionalNoyaTools, useOptionalNoyaUserData, useResourcesList, useTable, useUser, useWorkspaceAccess };
|
package/dist/index.d.ts
CHANGED
|
@@ -396,9 +396,28 @@ declare function useNoyaWorkspaces(): {
|
|
|
396
396
|
};
|
|
397
397
|
role: "OWNER" | "ADMIN" | "MEMBER";
|
|
398
398
|
}[];
|
|
399
|
+
settings?: {
|
|
400
|
+
defaultFileWorkspaceAccess: "private" | "read" | "write";
|
|
401
|
+
} | null | undefined;
|
|
399
402
|
}[];
|
|
400
403
|
loading: boolean;
|
|
401
404
|
};
|
|
405
|
+
type WorkspaceMemberInfo = {
|
|
406
|
+
userId: string;
|
|
407
|
+
name: string | null;
|
|
408
|
+
email: string | null;
|
|
409
|
+
image: string | null;
|
|
410
|
+
role: "OWNER" | "ADMIN" | "MEMBER";
|
|
411
|
+
};
|
|
412
|
+
/**
|
|
413
|
+
* Hook to get workspace members for a specific workspace.
|
|
414
|
+
* Returns the members array and a lookup map for easy access by userId.
|
|
415
|
+
*/
|
|
416
|
+
declare function useNoyaWorkspaceMembers(workspaceId: string): {
|
|
417
|
+
members: WorkspaceMemberInfo[];
|
|
418
|
+
membersById: Map<string, WorkspaceMemberInfo>;
|
|
419
|
+
loading: boolean;
|
|
420
|
+
};
|
|
402
421
|
declare function useNoyaMultiplayerRoomToken(fileId: string): {
|
|
403
422
|
access: "read" | "write";
|
|
404
423
|
} | undefined;
|
|
@@ -462,6 +481,46 @@ declare function useNoyaTemplates(): {
|
|
|
462
481
|
}[];
|
|
463
482
|
loading: boolean;
|
|
464
483
|
};
|
|
484
|
+
type WorkspaceRole = "OWNER" | "ADMIN" | "MEMBER";
|
|
485
|
+
type WorkspaceAccessInfo = {
|
|
486
|
+
isMember: boolean;
|
|
487
|
+
role: WorkspaceRole | null;
|
|
488
|
+
isOwner: boolean;
|
|
489
|
+
isAdmin: boolean;
|
|
490
|
+
workspaceId: string;
|
|
491
|
+
loading: boolean;
|
|
492
|
+
};
|
|
493
|
+
/**
|
|
494
|
+
* Get workspace membership and role information for the current user.
|
|
495
|
+
* Returns workspace access details including membership status and role.
|
|
496
|
+
*/
|
|
497
|
+
declare function useWorkspaceAccess(workspaceId: string): WorkspaceAccessInfo;
|
|
498
|
+
type FileAccessSource = "owner" | "workspace" | "public" | "none";
|
|
499
|
+
type FileAccessInfo = {
|
|
500
|
+
isOwner: boolean;
|
|
501
|
+
canView: boolean;
|
|
502
|
+
canEdit: boolean;
|
|
503
|
+
accessSource: FileAccessSource;
|
|
504
|
+
loading: boolean;
|
|
505
|
+
};
|
|
506
|
+
type FileWithAccess = {
|
|
507
|
+
user?: {
|
|
508
|
+
id: string;
|
|
509
|
+
} | null;
|
|
510
|
+
access?: NoyaAPI.FileAccess;
|
|
511
|
+
workspaceAccess?: NoyaAPI.FileAccess;
|
|
512
|
+
workspaceId?: string;
|
|
513
|
+
};
|
|
514
|
+
/**
|
|
515
|
+
* Get file access permissions for the current user.
|
|
516
|
+
* Considers ownership, workspace membership, and public access settings.
|
|
517
|
+
*/
|
|
518
|
+
declare function useFileAccess(file: FileWithAccess | null | undefined): FileAccessInfo;
|
|
519
|
+
declare function useIsFileOwner(file: {
|
|
520
|
+
user?: {
|
|
521
|
+
id: string;
|
|
522
|
+
} | null;
|
|
523
|
+
} | null | undefined): boolean;
|
|
465
524
|
|
|
466
525
|
type GetRowType<TTable extends Table<EntitySchema>> = Static<TTable["schema"]>;
|
|
467
526
|
type GetSelectConfig<TTable extends Table<EntitySchema>> = SelectConfig<GetRowType<TTable>[]>;
|
|
@@ -518,4 +577,4 @@ declare function useActivityEventsList<Config extends SelectConfig<ActivityEvent
|
|
|
518
577
|
}, config?: Config) => void;
|
|
519
578
|
};
|
|
520
579
|
|
|
521
|
-
export { NoyaAPIProvider, useActivityEventsList, useFileList, useFileListItem, useIsBeta, useMetadata, useNetworkRequests, useNoyaAssets, useNoyaAssetsByFileVersionId, useNoyaBilling, useNoyaClient, useNoyaClientOrFallback, useNoyaCreators, useNoyaDeployments, useNoyaEmailLists, useNoyaMultiplayerRoomToken, useNoyaOwnedFileVersions, useNoyaPersonalAccessTokens, useNoyaSecrets, useNoyaSession, useNoyaSite, useNoyaSites, useNoyaTags, useNoyaTemplates, useNoyaTools, useNoyaUserData, useNoyaWorkspaceBilling, useNoyaWorkspaceInvitations, useNoyaWorkspaces, useOptionalNoyaClient, useOptionalNoyaCreators, useOptionalNoyaSession, useOptionalNoyaTags, useOptionalNoyaTools, useOptionalNoyaUserData, useResourcesList, useTable, useUser };
|
|
580
|
+
export { type FileAccessInfo, type FileAccessSource, NoyaAPIProvider, type WorkspaceAccessInfo, type WorkspaceMemberInfo, type WorkspaceRole, useActivityEventsList, useFileAccess, useFileList, useFileListItem, useIsBeta, useIsFileOwner, useMetadata, useNetworkRequests, useNoyaAssets, useNoyaAssetsByFileVersionId, useNoyaBilling, useNoyaClient, useNoyaClientOrFallback, useNoyaCreators, useNoyaDeployments, useNoyaEmailLists, useNoyaMultiplayerRoomToken, useNoyaOwnedFileVersions, useNoyaPersonalAccessTokens, useNoyaSecrets, useNoyaSession, useNoyaSite, useNoyaSites, useNoyaTags, useNoyaTemplates, useNoyaTools, useNoyaUserData, useNoyaWorkspaceBilling, useNoyaWorkspaceInvitations, useNoyaWorkspaceMembers, useNoyaWorkspaces, useOptionalNoyaClient, useOptionalNoyaCreators, useOptionalNoyaSession, useOptionalNoyaTags, useOptionalNoyaTools, useOptionalNoyaUserData, useResourcesList, useTable, useUser, useWorkspaceAccess };
|
package/dist/index.js
CHANGED
|
@@ -2266,9 +2266,11 @@ var src_exports = {};
|
|
|
2266
2266
|
__export(src_exports, {
|
|
2267
2267
|
NoyaAPIProvider: () => NoyaAPIProvider,
|
|
2268
2268
|
useActivityEventsList: () => useActivityEventsList,
|
|
2269
|
+
useFileAccess: () => useFileAccess,
|
|
2269
2270
|
useFileList: () => useFileList,
|
|
2270
2271
|
useFileListItem: () => useFileListItem,
|
|
2271
2272
|
useIsBeta: () => useIsBeta,
|
|
2273
|
+
useIsFileOwner: () => useIsFileOwner,
|
|
2272
2274
|
useMetadata: () => useMetadata,
|
|
2273
2275
|
useNetworkRequests: () => useNetworkRequests,
|
|
2274
2276
|
useNoyaAssets: () => useNoyaAssets,
|
|
@@ -2292,6 +2294,7 @@ __export(src_exports, {
|
|
|
2292
2294
|
useNoyaUserData: () => useNoyaUserData,
|
|
2293
2295
|
useNoyaWorkspaceBilling: () => useNoyaWorkspaceBilling,
|
|
2294
2296
|
useNoyaWorkspaceInvitations: () => useNoyaWorkspaceInvitations,
|
|
2297
|
+
useNoyaWorkspaceMembers: () => useNoyaWorkspaceMembers,
|
|
2295
2298
|
useNoyaWorkspaces: () => useNoyaWorkspaces,
|
|
2296
2299
|
useOptionalNoyaClient: () => useOptionalNoyaClient,
|
|
2297
2300
|
useOptionalNoyaCreators: () => useOptionalNoyaCreators,
|
|
@@ -2301,7 +2304,8 @@ __export(src_exports, {
|
|
|
2301
2304
|
useOptionalNoyaUserData: () => useOptionalNoyaUserData,
|
|
2302
2305
|
useResourcesList: () => useResourcesList,
|
|
2303
2306
|
useTable: () => useTable,
|
|
2304
|
-
useUser: () => useUser
|
|
2307
|
+
useUser: () => useUser,
|
|
2308
|
+
useWorkspaceAccess: () => useWorkspaceAccess
|
|
2305
2309
|
});
|
|
2306
2310
|
module.exports = __toCommonJS(src_exports);
|
|
2307
2311
|
__reExport(src_exports, require("@noya-app/noya-api"), module.exports);
|
|
@@ -2502,6 +2506,24 @@ function useNoyaWorkspaces() {
|
|
|
2502
2506
|
}, [client, fetchWorkspaces]);
|
|
2503
2507
|
return workspaces;
|
|
2504
2508
|
}
|
|
2509
|
+
function useNoyaWorkspaceMembers(workspaceId) {
|
|
2510
|
+
const { workspaces, loading } = useNoyaWorkspaces();
|
|
2511
|
+
return (0, import_react3.useMemo)(() => {
|
|
2512
|
+
const workspace = workspaces.find((w) => w.id === workspaceId);
|
|
2513
|
+
const members = workspace?.members.map((m) => ({
|
|
2514
|
+
userId: m.userId,
|
|
2515
|
+
name: m.user.name,
|
|
2516
|
+
email: m.user.email,
|
|
2517
|
+
image: m.user.image,
|
|
2518
|
+
role: m.role
|
|
2519
|
+
})) ?? [];
|
|
2520
|
+
const membersById = /* @__PURE__ */ new Map();
|
|
2521
|
+
for (const member of members) {
|
|
2522
|
+
membersById.set(member.userId, member);
|
|
2523
|
+
}
|
|
2524
|
+
return { members, membersById, loading };
|
|
2525
|
+
}, [workspaces, workspaceId, loading]);
|
|
2526
|
+
}
|
|
2505
2527
|
function useNoyaMultiplayerRoomToken(fileId) {
|
|
2506
2528
|
const client = useNoyaClientOrFallback();
|
|
2507
2529
|
const multiplayerRoomToken = (0, import_observable_react.useObservable)(
|
|
@@ -2566,6 +2588,111 @@ function useNoyaTemplates() {
|
|
|
2566
2588
|
loading: loading === "fetching"
|
|
2567
2589
|
};
|
|
2568
2590
|
}
|
|
2591
|
+
function useWorkspaceAccess(workspaceId) {
|
|
2592
|
+
const session = useNoyaSession();
|
|
2593
|
+
const { workspaces, loading } = useNoyaWorkspaces();
|
|
2594
|
+
return (0, import_react3.useMemo)(() => {
|
|
2595
|
+
const userId = session?.user?.id;
|
|
2596
|
+
const workspace = workspaces.find((w) => w.id === workspaceId);
|
|
2597
|
+
if (!workspace || !userId) {
|
|
2598
|
+
return {
|
|
2599
|
+
isMember: false,
|
|
2600
|
+
role: null,
|
|
2601
|
+
isOwner: false,
|
|
2602
|
+
isAdmin: false,
|
|
2603
|
+
workspaceId,
|
|
2604
|
+
loading
|
|
2605
|
+
};
|
|
2606
|
+
}
|
|
2607
|
+
const member = workspace.members.find((m) => m.userId === userId);
|
|
2608
|
+
const role = member?.role ?? null;
|
|
2609
|
+
return {
|
|
2610
|
+
isMember: !!member,
|
|
2611
|
+
role,
|
|
2612
|
+
isOwner: role === "OWNER",
|
|
2613
|
+
isAdmin: role === "OWNER" || role === "ADMIN",
|
|
2614
|
+
workspaceId,
|
|
2615
|
+
loading
|
|
2616
|
+
};
|
|
2617
|
+
}, [session?.user?.id, workspaces, workspaceId, loading]);
|
|
2618
|
+
}
|
|
2619
|
+
function useFileAccess(file) {
|
|
2620
|
+
const session = useNoyaSession();
|
|
2621
|
+
const { workspaces, loading: workspacesLoading } = useNoyaWorkspaces();
|
|
2622
|
+
return (0, import_react3.useMemo)(() => {
|
|
2623
|
+
const userId = session?.user?.id;
|
|
2624
|
+
const noAccess = {
|
|
2625
|
+
isOwner: false,
|
|
2626
|
+
canView: false,
|
|
2627
|
+
canEdit: false,
|
|
2628
|
+
accessSource: "none",
|
|
2629
|
+
loading: workspacesLoading
|
|
2630
|
+
};
|
|
2631
|
+
if (!file) return noAccess;
|
|
2632
|
+
const isOwner = !!(userId && file.user?.id === userId);
|
|
2633
|
+
if (isOwner) {
|
|
2634
|
+
return {
|
|
2635
|
+
isOwner: true,
|
|
2636
|
+
canView: true,
|
|
2637
|
+
canEdit: true,
|
|
2638
|
+
accessSource: "owner",
|
|
2639
|
+
loading: false
|
|
2640
|
+
};
|
|
2641
|
+
}
|
|
2642
|
+
if (file.workspaceId && userId) {
|
|
2643
|
+
const workspace = workspaces.find((w) => w.id === file.workspaceId);
|
|
2644
|
+
const isMember = workspace?.members.some((m) => m.userId === userId);
|
|
2645
|
+
if (isMember) {
|
|
2646
|
+
const workspaceAccess = file.workspaceAccess ?? "private";
|
|
2647
|
+
if (workspaceAccess === "write") {
|
|
2648
|
+
return {
|
|
2649
|
+
isOwner: false,
|
|
2650
|
+
canView: true,
|
|
2651
|
+
canEdit: true,
|
|
2652
|
+
accessSource: "workspace",
|
|
2653
|
+
loading: false
|
|
2654
|
+
};
|
|
2655
|
+
}
|
|
2656
|
+
if (workspaceAccess === "read") {
|
|
2657
|
+
return {
|
|
2658
|
+
isOwner: false,
|
|
2659
|
+
canView: true,
|
|
2660
|
+
canEdit: false,
|
|
2661
|
+
accessSource: "workspace",
|
|
2662
|
+
loading: false
|
|
2663
|
+
};
|
|
2664
|
+
}
|
|
2665
|
+
}
|
|
2666
|
+
}
|
|
2667
|
+
const publicAccess = file.access ?? "private";
|
|
2668
|
+
if (publicAccess === "write") {
|
|
2669
|
+
return {
|
|
2670
|
+
isOwner: false,
|
|
2671
|
+
canView: true,
|
|
2672
|
+
canEdit: true,
|
|
2673
|
+
accessSource: "public",
|
|
2674
|
+
loading: false
|
|
2675
|
+
};
|
|
2676
|
+
}
|
|
2677
|
+
if (publicAccess === "read") {
|
|
2678
|
+
return {
|
|
2679
|
+
isOwner: false,
|
|
2680
|
+
canView: true,
|
|
2681
|
+
canEdit: false,
|
|
2682
|
+
accessSource: "public",
|
|
2683
|
+
loading: false
|
|
2684
|
+
};
|
|
2685
|
+
}
|
|
2686
|
+
return noAccess;
|
|
2687
|
+
}, [session?.user?.id, file, workspaces, workspacesLoading]);
|
|
2688
|
+
}
|
|
2689
|
+
function useIsFileOwner(file) {
|
|
2690
|
+
const session = useNoyaSession();
|
|
2691
|
+
return (0, import_react3.useMemo)(() => {
|
|
2692
|
+
if (!file || !session?.user?.id) return false;
|
|
2693
|
+
return file.user?.id === session.user.id;
|
|
2694
|
+
}, [file, session?.user?.id]);
|
|
2695
|
+
}
|
|
2569
2696
|
|
|
2570
2697
|
// ../../node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs
|
|
2571
2698
|
var value_exports = {};
|
|
@@ -15262,9 +15389,11 @@ function useActivityEventsList(fileId, select, options = {}) {
|
|
|
15262
15389
|
0 && (module.exports = {
|
|
15263
15390
|
NoyaAPIProvider,
|
|
15264
15391
|
useActivityEventsList,
|
|
15392
|
+
useFileAccess,
|
|
15265
15393
|
useFileList,
|
|
15266
15394
|
useFileListItem,
|
|
15267
15395
|
useIsBeta,
|
|
15396
|
+
useIsFileOwner,
|
|
15268
15397
|
useMetadata,
|
|
15269
15398
|
useNetworkRequests,
|
|
15270
15399
|
useNoyaAssets,
|
|
@@ -15288,6 +15417,7 @@ function useActivityEventsList(fileId, select, options = {}) {
|
|
|
15288
15417
|
useNoyaUserData,
|
|
15289
15418
|
useNoyaWorkspaceBilling,
|
|
15290
15419
|
useNoyaWorkspaceInvitations,
|
|
15420
|
+
useNoyaWorkspaceMembers,
|
|
15291
15421
|
useNoyaWorkspaces,
|
|
15292
15422
|
useOptionalNoyaClient,
|
|
15293
15423
|
useOptionalNoyaCreators,
|
|
@@ -15298,6 +15428,7 @@ function useActivityEventsList(fileId, select, options = {}) {
|
|
|
15298
15428
|
useResourcesList,
|
|
15299
15429
|
useTable,
|
|
15300
15430
|
useUser,
|
|
15431
|
+
useWorkspaceAccess,
|
|
15301
15432
|
...require("@noya-app/noya-api")
|
|
15302
15433
|
});
|
|
15303
15434
|
//# sourceMappingURL=index.js.map
|