@edifice.io/collect-frontend 1.0.0 → 1.0.2
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/lib/components/AppActionHeader.d.ts +1 -0
- package/lib/components/AppActionHeaderContext.d.ts +11 -0
- package/lib/components/AppHeaderCollection.d.ts +12 -0
- package/lib/components/CollectApp/CollectApp.d.ts +26 -0
- package/lib/components/CollectApp/CollectAppContext.d.ts +13 -0
- package/lib/components/CollectAppActionHeader.d.ts +4 -0
- package/lib/components/InstructionCard.d.ts +5 -0
- package/lib/components/SearchBarCollect.d.ts +3 -0
- package/lib/components/SubmissionCard.d.ts +7 -0
- package/lib/config/constants.d.ts +6 -0
- package/lib/features/collect-form/components/CollectForm.d.ts +24 -0
- package/lib/features/collect-form/components/index.d.ts +3 -0
- package/lib/features/collect-form/hooks/index.d.ts +2 -0
- package/lib/features/collect-form/hooks/useCreateCollectionForm.d.ts +20 -0
- package/lib/features/collect-form/index.d.ts +3 -0
- package/lib/features/collection-actions/components/CollectionActions.d.ts +4 -0
- package/lib/features/collection-list/components/CollectionListTable.d.ts +1 -0
- package/lib/features/collection-list/components/CollectionListTableBody.d.ts +4 -0
- package/lib/features/collection-list/components/CollectionListTableFooter.d.ts +12 -0
- package/lib/features/collection-list/components/CollectionListTableHead.d.ts +1 -0
- package/lib/features/collection-list/hooks/useCollectionListTableBody.d.ts +7 -0
- package/lib/features/collection-list/hooks/useCollectionListTableHead.d.ts +12 -0
- package/lib/features/collection-list/hooks/useCollectionPagination.d.ts +11 -0
- package/lib/features/collection-list/store/collectionListStore.d.ts +26 -0
- package/lib/features/collection-submissions-list/components/CollectionSubmissionsList.d.ts +4 -0
- package/lib/features/collection-submissions-list/components/CollectionSubmissionsListMobile.d.ts +4 -0
- package/lib/features/collection-submissions-list/components/CollectionSubmissionsListTr.d.ts +4 -0
- package/lib/features/collection-submissions-list/components/CollectionSubmissionsListView.d.ts +4 -0
- package/lib/features/collection-submissions-list/components/CollectionSubmissionsRender.d.ts +3 -0
- package/lib/features/collection-submissions-list/hooks/useCollectionSubmissionsList.d.ts +10 -0
- package/lib/features/collection-submissions-list/store/collectionSubmissionListStore.d.ts +16 -0
- package/lib/features/creation-wizard/CreationWizard.d.ts +2 -0
- package/lib/features/creation-wizard/components/FormCreate.d.ts +7 -0
- package/lib/features/creation-wizard/components/Members.d.ts +9 -0
- package/lib/features/creation-wizard/components/WizardContext.d.ts +8 -0
- package/lib/features/creation-wizard/components/WizardHeader.d.ts +3 -0
- package/lib/features/creation-wizard/components/WizardLayout.d.ts +3 -0
- package/lib/features/creation-wizard/hooks/useAddMember.d.ts +15 -0
- package/lib/features/creation-wizard/sharing.utils.d.ts +12 -0
- package/lib/features/creation-wizard/store/wizardStore.d.ts +15 -0
- package/lib/features/dropdown-actions/components/DropdownActionTable.d.ts +7 -0
- package/lib/features/dropdown-actions/hooks/useDropdownActionTable.d.ts +13 -0
- package/lib/features/menu/components/CollectMenu.d.ts +5 -0
- package/lib/features/menu/components/DesktopMenu.d.ts +1 -0
- package/lib/features/menu/components/MenuContext.d.ts +13 -0
- package/lib/features/menu/components/MobileMenu.d.ts +1 -0
- package/lib/features/menu/store/menuStore.d.ts +20 -0
- package/lib/features/modal/components/DeleteCollectionModal.d.ts +3 -0
- package/lib/features/modal/components/InstructionModal.d.ts +4 -0
- package/lib/features/modal/components/UpdateSubmissionModal.d.ts +9 -0
- package/lib/features/modal/hooks/useDeleteCollectionModal.d.ts +5 -0
- package/lib/features/submission/components/SubmissionEdit.d.ts +4 -0
- package/lib/features/submission/components/SubmissionView.d.ts +5 -0
- package/lib/features/submission-actions/components/SubmissionActions.d.ts +6 -0
- package/lib/features/submission-list/components/SubmissionFilter.d.ts +1 -0
- package/lib/features/submission-list/components/SubmissionsListView.d.ts +1 -0
- package/lib/features/submission-list/hooks/useSubmissionPagination.d.ts +7 -0
- package/lib/features/submission-list/store/submissionListStore.d.ts +24 -0
- package/lib/hooks/useGetStatusSubmission.d.ts +12 -0
- package/lib/hooks/useSearch.d.ts +18 -0
- package/lib/hooks/useStepNavigations.d.ts +5 -0
- package/lib/hooks/useSubmissionForm.d.ts +12 -0
- package/lib/hooks/useWizard.d.ts +13 -0
- package/lib/i18n.d.ts +2 -0
- package/lib/index.d.ts +14 -1
- package/lib/index.js +14676 -15
- package/lib/main.d.ts +0 -0
- package/lib/models/collect.d.ts +12 -0
- package/lib/models/menu.d.ts +5 -0
- package/lib/pages/Collection.d.ts +4 -0
- package/lib/pages/CollectionsLayout.d.ts +2 -0
- package/lib/pages/CollectionsList.d.ts +3 -0
- package/lib/pages/FormEdit.d.ts +4 -0
- package/lib/pages/MembersEdit.d.ts +4 -0
- package/lib/pages/MineSubmission.d.ts +6 -0
- package/lib/pages/NotFound.d.ts +1 -0
- package/lib/pages/PageError.d.ts +1 -0
- package/lib/pages/Root.d.ts +2 -0
- package/lib/pages/Submission.d.ts +4 -0
- package/lib/pages/SubmissionList.d.ts +3 -0
- package/lib/providers/index.d.ts +6 -0
- package/lib/routes/wizard/wizard.d.ts +2 -0
- package/lib/services/api/collection.service.d.ts +14 -0
- package/lib/services/api/submission.services.d.ts +8 -0
- package/lib/services/api/user.service.d.ts +77 -0
- package/lib/services/queries/collection.queries.d.ts +76 -0
- package/lib/services/queries/index.d.ts +1 -0
- package/lib/services/queries/submission.queries.d.ts +36 -0
- package/lib/services/queries/user.queries.d.ts +76 -0
- package/lib/store/collectionActionStore.d.ts +29 -0
- package/lib/store/createSelectors.d.ts +10 -0
- package/lib/store/submissionActionStore.d.ts +32 -0
- package/lib/store/userActionStore.d.ts +26 -0
- package/lib/style.css +1 -1
- package/package.json +7 -6
- package/lib/AppHeaderCollection-CnQ2pqtl.js +0 -172
- package/lib/CXEL7IU7-Dei8UEaR.js +0 -42
- package/lib/Collection-BcJujQH9.js +0 -472
- package/lib/CollectionsLayout-BWau0fFT.js +0 -41
- package/lib/CollectionsList-DoYvRzYy.js +0 -324
- package/lib/DeleteCollectionModal-C8NPFHjI.js +0 -71
- package/lib/DropdownActionTable-CJA3djIr.js +0 -84
- package/lib/FormEdit-DrlhrKl6.js +0 -102
- package/lib/HASRA6WW-Lcj-6-Jg.js +0 -9093
- package/lib/I3HPI4QX-BiqSZkoI.js +0 -33
- package/lib/MembersEdit--SFUJ5dS.js +0 -77
- package/lib/Root-4Xv-j-fs.js +0 -20
- package/lib/SearchBarCollect-DBKaVVDV.js +0 -23
- package/lib/Submission-Bi1puhNG.js +0 -257
- package/lib/SubmissionList-BUexy8AF.js +0 -197
- package/lib/emptyscreen-list-collection-CWGxO4Ss.js +0 -4
- package/lib/index-DPvhGf6m.js +0 -3485
- package/lib/submission.queries-rlTI0q9h.js +0 -86
- package/lib/useGetStatusSubmission-DxHmLPxr.js +0 -57
package/lib/main.d.ts
ADDED
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SharingItem, SingleAttachmentType } from '@edifice.io/react';
|
|
2
|
+
export interface WizardData {
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
deadline?: Date;
|
|
6
|
+
attachments: SingleAttachmentType[];
|
|
7
|
+
sharings: SharingItem[];
|
|
8
|
+
}
|
|
9
|
+
export declare enum CollectionContext {
|
|
10
|
+
COLLECTION = "COLLECTION",
|
|
11
|
+
SUBMISSION = "SUBMISSION"
|
|
12
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { LoaderFunctionArgs } from 'react-router-dom';
|
|
3
|
+
export declare const loader: (queryClient: QueryClient) => ({ params }: LoaderFunctionArgs) => Promise<null>;
|
|
4
|
+
export declare const Collection: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { LoaderFunctionArgs } from 'react-router-dom';
|
|
3
|
+
export declare const loader: (queryClient: QueryClient) => ({ params }: LoaderFunctionArgs) => Promise<null>;
|
|
4
|
+
export declare const FormEdit: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { LoaderFunctionArgs } from 'react-router-dom';
|
|
3
|
+
export declare const loader: (queryClient: QueryClient) => ({ params }: LoaderFunctionArgs) => Promise<null>;
|
|
4
|
+
export declare const MembersEdit: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the current user's submission for a collection and redirects to it.
|
|
3
|
+
* Used by contributor notifications (collect sharing/update) to display each
|
|
4
|
+
* recipient's own submission — same URL for all, works in batch.
|
|
5
|
+
*/
|
|
6
|
+
export declare function MineSubmission(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const NotFound: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PageError: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { LoaderFunctionArgs } from 'react-router-dom';
|
|
3
|
+
export declare const loader: (queryClient: QueryClient) => ({ params }: LoaderFunctionArgs) => Promise<null>;
|
|
4
|
+
export declare const Submission: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CreateCollectionDto, SearchCollectionDto, SearchCollectionToSubmitDto, UpdateCollectionDto, UpdateCollectionSharingDto } from '@edifice.io/collect-client-rest';
|
|
2
|
+
export declare const baseURL = "/collect/api";
|
|
3
|
+
export declare const collectionService: {
|
|
4
|
+
getCollections: (query?: SearchCollectionDto) => Promise<import('@edifice.io/collect-client-rest').SearchCollectionResponseDto>;
|
|
5
|
+
getCollectionsToSubmit: (query?: SearchCollectionToSubmitDto) => Promise<import('@edifice.io/collect-client-rest').SearchCollectionStudentViewDto>;
|
|
6
|
+
getCollection: (id: number) => Promise<import('@edifice.io/collect-client-rest').CollectionDto>;
|
|
7
|
+
createCollection: (data: CreateCollectionDto) => Promise<import('@edifice.io/collect-client-rest').CollectionDto>;
|
|
8
|
+
updateCollection: (id: number, data: UpdateCollectionDto) => Promise<import('@edifice.io/collect-client-rest').CollectionDto>;
|
|
9
|
+
deleteCollection: (id: number) => Promise<boolean>;
|
|
10
|
+
updateSharingCollection: (id: number, data: UpdateCollectionSharingDto) => Promise<import('@edifice.io/collect-client-rest').CollectionDto>;
|
|
11
|
+
getCollectionsToSubmitByIds: (ids: number[], query?: SearchCollectionToSubmitDto) => Promise<import('@edifice.io/collect-client-rest').SearchCollectionStudentViewDto>;
|
|
12
|
+
getCollectionsCount: (query?: SearchCollectionDto) => Promise<import('@edifice.io/collect-client-rest').CountCollectionsByStatusDto>;
|
|
13
|
+
getCollectionsToSubmitCount: (query?: SearchCollectionToSubmitDto) => Promise<import('@edifice.io/collect-client-rest').CountStudentSubmissionsByStatusDto>;
|
|
14
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CreateSubmissionDto, SearchSubmissionDto, UpdateSubmissionStatusDto } from '@edifice.io/collect-client-rest';
|
|
2
|
+
export declare const baseURL = "/collect/api";
|
|
3
|
+
export declare const submissionService: {
|
|
4
|
+
getSubmissions: (collectionId: number, query?: SearchSubmissionDto) => Promise<import('@edifice.io/collect-client-rest').SearchSubmissionResponseDto>;
|
|
5
|
+
getSubmission: (collectionId: number, submissionId: number) => Promise<import('@edifice.io/collect-client-rest').SubmissionDto | null>;
|
|
6
|
+
updateSubmission: (collectionId: number, submissionId: number, data: CreateSubmissionDto) => Promise<import('@edifice.io/collect-client-rest').SubmissionDto>;
|
|
7
|
+
updateSubmissionStatus: (collectionId: number, submissionId: number, data: UpdateSubmissionStatusDto) => Promise<import('@edifice.io/collect-client-rest').SubmissionDto>;
|
|
8
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flag to disable broadcast groups in user search.
|
|
3
|
+
* Set to true to disable broadcast groups.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DISABLE_BROADCASTGROUP_IN_SEARCH = true;
|
|
6
|
+
export declare enum VisibleType {
|
|
7
|
+
USER = "User",
|
|
8
|
+
GROUP = "Group",
|
|
9
|
+
BROADCAST_GROUP = "BroadcastGroup",
|
|
10
|
+
SHAREBOOKMARK = "ShareBookmark"
|
|
11
|
+
}
|
|
12
|
+
export interface VisibleUser {
|
|
13
|
+
id: string;
|
|
14
|
+
displayName: string;
|
|
15
|
+
structureName: string;
|
|
16
|
+
profile: string;
|
|
17
|
+
children: [];
|
|
18
|
+
relatives: Array<{
|
|
19
|
+
displayName: string;
|
|
20
|
+
id: string;
|
|
21
|
+
}>;
|
|
22
|
+
type: VisibleType.USER;
|
|
23
|
+
usedIn: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface VisibleGroup {
|
|
26
|
+
id: string;
|
|
27
|
+
displayName: string;
|
|
28
|
+
structureName: string;
|
|
29
|
+
nbUsers: number;
|
|
30
|
+
groupType: string;
|
|
31
|
+
profile: string;
|
|
32
|
+
type: VisibleType.GROUP | VisibleType.BROADCAST_GROUP;
|
|
33
|
+
usedIn: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface VisibleBookmark {
|
|
36
|
+
id: string;
|
|
37
|
+
displayName: string;
|
|
38
|
+
type: VisibleType.SHAREBOOKMARK;
|
|
39
|
+
usedIn: string[];
|
|
40
|
+
}
|
|
41
|
+
export type SearchVisiblesResponse = Array<VisibleUser | VisibleGroup | VisibleBookmark>;
|
|
42
|
+
export type UserForGroup = {
|
|
43
|
+
type: string;
|
|
44
|
+
id: string;
|
|
45
|
+
displayName: string;
|
|
46
|
+
login: string;
|
|
47
|
+
};
|
|
48
|
+
export type Sharebookmark = {
|
|
49
|
+
id: string;
|
|
50
|
+
name: string;
|
|
51
|
+
};
|
|
52
|
+
export type FetchSharebookmarkResponse = {
|
|
53
|
+
id: string;
|
|
54
|
+
name: string;
|
|
55
|
+
users: UserForSharebookmark[];
|
|
56
|
+
groups: GroupForSharebookmark[];
|
|
57
|
+
};
|
|
58
|
+
export type UserForSharebookmark = {
|
|
59
|
+
id: string;
|
|
60
|
+
displayName: string;
|
|
61
|
+
profile: string;
|
|
62
|
+
activationCode: boolean;
|
|
63
|
+
};
|
|
64
|
+
export type GroupForSharebookmark = {
|
|
65
|
+
id: string;
|
|
66
|
+
name: string;
|
|
67
|
+
groupType: string;
|
|
68
|
+
nbUsers: number;
|
|
69
|
+
activationCode: boolean;
|
|
70
|
+
profile: string;
|
|
71
|
+
sortName: string;
|
|
72
|
+
};
|
|
73
|
+
export declare const createUserService: () => {
|
|
74
|
+
searchVisibles(search?: string, includeHidden?: boolean): Promise<SearchVisiblesResponse>;
|
|
75
|
+
fetchUsersByGroup(groupId: string): Promise<UserForGroup[]>;
|
|
76
|
+
fetchSharebookmark(sharebookmarkId: string): Promise<FetchSharebookmarkResponse>;
|
|
77
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { CreateCollectionDto, SearchCollectionDto, SearchCollectionToSubmitDto, UpdateCollectionDto, UpdateCollectionSharingDto } from '@edifice.io/collect-client-rest';
|
|
2
|
+
export declare const collectionsQueryOptions: {
|
|
3
|
+
base: readonly ["collections"];
|
|
4
|
+
baseToSubmit: readonly ["collectionsToSubmit"];
|
|
5
|
+
};
|
|
6
|
+
export declare const collectionsInfiniteQueryOptions: (query?: SearchCollectionDto) => {
|
|
7
|
+
queryKey: (string | SearchCollectionDto | undefined)[];
|
|
8
|
+
queryFn: ({ pageParam }: {
|
|
9
|
+
pageParam?: number | undefined;
|
|
10
|
+
}) => Promise<import('@edifice.io/collect-client-rest').SearchCollectionResponseDto>;
|
|
11
|
+
staleTime: number;
|
|
12
|
+
initialPageParam: number;
|
|
13
|
+
refetchOnMount: boolean;
|
|
14
|
+
getNextPageParam: (lastPage: {
|
|
15
|
+
meta?: {
|
|
16
|
+
currentPage?: number;
|
|
17
|
+
totalPages?: number;
|
|
18
|
+
};
|
|
19
|
+
}) => number | undefined;
|
|
20
|
+
};
|
|
21
|
+
export declare const useCollectionsInfiniteQueryOptions: (query?: SearchCollectionDto) => import('@tanstack/react-query').UseInfiniteQueryResult<import('@tanstack/react-query').InfiniteData<import('@edifice.io/collect-client-rest').SearchCollectionResponseDto, unknown>, Error>;
|
|
22
|
+
export declare const collectionsToSubmitInfiniteQueryOptions: (query?: SearchCollectionToSubmitDto) => {
|
|
23
|
+
queryKey: (string | SearchCollectionToSubmitDto | undefined)[];
|
|
24
|
+
queryFn: ({ pageParam }: {
|
|
25
|
+
pageParam?: number | undefined;
|
|
26
|
+
}) => Promise<import('@edifice.io/collect-client-rest').SearchCollectionStudentViewDto>;
|
|
27
|
+
staleTime: number;
|
|
28
|
+
initialPageParam: number;
|
|
29
|
+
refetchOnMount: boolean;
|
|
30
|
+
getNextPageParam: (lastPage: {
|
|
31
|
+
meta?: {
|
|
32
|
+
currentPage?: number;
|
|
33
|
+
totalPages?: number;
|
|
34
|
+
};
|
|
35
|
+
}) => number | undefined;
|
|
36
|
+
};
|
|
37
|
+
export declare const useLoadNextPageCollectionToSubmit: (query?: SearchCollectionToSubmitDto) => import('@tanstack/react-query').UseInfiniteQueryResult<import('@tanstack/react-query').InfiniteData<import('@edifice.io/collect-client-rest').SearchCollectionStudentViewDto, unknown>, Error>;
|
|
38
|
+
export declare const collectionQueryOptions: (id: number) => {
|
|
39
|
+
queryKey: (string | number)[];
|
|
40
|
+
queryFn: () => Promise<import('@edifice.io/collect-client-rest').CollectionDto>;
|
|
41
|
+
};
|
|
42
|
+
export declare const useCollection: (id: number) => import('@tanstack/react-query').UseQueryResult<import('@edifice.io/collect-client-rest').CollectionDto, Error>;
|
|
43
|
+
export declare const collectionsByIdsQueryOptions: (ids: number[], query?: Omit<SearchCollectionDto, "ids">) => {
|
|
44
|
+
queryKey: (string | number[] | Omit<SearchCollectionDto, "ids">)[];
|
|
45
|
+
queryFn: () => Promise<import('@edifice.io/collect-client-rest').SearchCollectionResponseDto>;
|
|
46
|
+
enabled: boolean;
|
|
47
|
+
};
|
|
48
|
+
export declare const useCollectionsByIds: (ids: number[], query?: Omit<SearchCollectionDto, "ids">) => import('@tanstack/react-query').UseQueryResult<import('@edifice.io/collect-client-rest').SearchCollectionResponseDto, Error>;
|
|
49
|
+
export declare const collectionsToSubmitByIdsQueryOptions: (ids: number[], query?: Omit<SearchCollectionToSubmitDto, "ids">) => {
|
|
50
|
+
queryKey: (string | number[] | Omit<SearchCollectionToSubmitDto, "ids">)[];
|
|
51
|
+
queryFn: () => Promise<import('@edifice.io/collect-client-rest').SearchCollectionStudentViewDto>;
|
|
52
|
+
enabled: boolean;
|
|
53
|
+
};
|
|
54
|
+
export declare const useCollectionsToSubmitByIds: (ids: number[], query?: Omit<SearchCollectionToSubmitDto, "ids">) => import('@tanstack/react-query').UseQueryResult<import('@edifice.io/collect-client-rest').SearchCollectionStudentViewDto, Error>;
|
|
55
|
+
export declare const useCreateCollection: () => import('@tanstack/react-query').UseMutationResult<import('@edifice.io/collect-client-rest').CollectionDto, Error, CreateCollectionDto, unknown>;
|
|
56
|
+
export declare const useUpdateCollection: () => import('@tanstack/react-query').UseMutationResult<import('@edifice.io/collect-client-rest').CollectionDto, Error, {
|
|
57
|
+
id: number;
|
|
58
|
+
data: UpdateCollectionDto;
|
|
59
|
+
}, unknown>;
|
|
60
|
+
export declare const useDeleteCollection: () => import('@tanstack/react-query').UseMutationResult<boolean, Error, number, unknown>;
|
|
61
|
+
export declare const useUpdateSharingCollection: () => import('@tanstack/react-query').UseMutationResult<import('@edifice.io/collect-client-rest').CollectionDto, Error, {
|
|
62
|
+
id: number;
|
|
63
|
+
data: UpdateCollectionSharingDto;
|
|
64
|
+
}, unknown>;
|
|
65
|
+
export declare const collectionsCountQueryOptions: (query?: SearchCollectionDto) => {
|
|
66
|
+
queryKey: readonly ["collections", "count", SearchCollectionDto];
|
|
67
|
+
queryFn: () => Promise<import('@edifice.io/collect-client-rest').CountCollectionsByStatusDto>;
|
|
68
|
+
enabled: boolean;
|
|
69
|
+
};
|
|
70
|
+
export declare const useCollectionsCount: (query?: SearchCollectionDto) => import('@tanstack/react-query').UseQueryResult<import('@edifice.io/collect-client-rest').CountCollectionsByStatusDto, Error>;
|
|
71
|
+
export declare const collectionsToSubmitCountByIdsQueryOptions: (query?: SearchCollectionToSubmitDto) => {
|
|
72
|
+
queryKey: readonly ["collectionsToSubmit", "count", SearchCollectionToSubmitDto];
|
|
73
|
+
queryFn: () => Promise<import('@edifice.io/collect-client-rest').CountStudentSubmissionsByStatusDto>;
|
|
74
|
+
enabled: boolean;
|
|
75
|
+
};
|
|
76
|
+
export declare const useCollectionsToSubmitCountByIds: (query?: SearchCollectionToSubmitDto) => import('@tanstack/react-query').UseQueryResult<import('@edifice.io/collect-client-rest').CountStudentSubmissionsByStatusDto, Error>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './collection.queries';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CreateSubmissionDto, SearchSubmissionDto, UpdateSubmissionStatusDto } from '@edifice.io/collect-client-rest';
|
|
2
|
+
export declare const submissionsQueryOptions: {
|
|
3
|
+
base: readonly ["submissions"];
|
|
4
|
+
};
|
|
5
|
+
export declare const submissionsInfiniteQueryOptions: (collectionId: number, query?: SearchSubmissionDto) => {
|
|
6
|
+
queryKey: (number | SearchSubmissionDto | "submissions" | undefined)[];
|
|
7
|
+
queryFn: ({ pageParam }: {
|
|
8
|
+
pageParam?: number | undefined;
|
|
9
|
+
}) => Promise<import('@edifice.io/collect-client-rest').SearchSubmissionResponseDto>;
|
|
10
|
+
staleTime: number;
|
|
11
|
+
initialPageParam: number;
|
|
12
|
+
refetchOnMount: boolean;
|
|
13
|
+
getNextPageParam: (lastPage: {
|
|
14
|
+
meta?: {
|
|
15
|
+
currentPage?: number;
|
|
16
|
+
totalPages?: number;
|
|
17
|
+
};
|
|
18
|
+
}) => number | undefined;
|
|
19
|
+
};
|
|
20
|
+
export declare const useSubmissionsInfiniteQueryOptions: (collectionId: number, query?: SearchSubmissionDto) => import('@tanstack/react-query').UseInfiniteQueryResult<import('@tanstack/react-query').InfiniteData<import('@edifice.io/collect-client-rest').SearchSubmissionResponseDto, unknown>, Error>;
|
|
21
|
+
export declare const submissionQueryOptions: (collectionId: number, submissionId: number) => {
|
|
22
|
+
queryKey: (string | number)[];
|
|
23
|
+
queryFn: () => Promise<import('@edifice.io/collect-client-rest').SubmissionDto | null>;
|
|
24
|
+
staleTime: number;
|
|
25
|
+
};
|
|
26
|
+
export declare const useSubmission: (collectionId: number, submissionId: number) => import('@tanstack/react-query').UseQueryResult<import('@edifice.io/collect-client-rest').SubmissionDto | null, Error>;
|
|
27
|
+
export declare const useUpdateSubmission: () => import('@tanstack/react-query').UseMutationResult<import('@edifice.io/collect-client-rest').SubmissionDto, Error, {
|
|
28
|
+
collectionId: number;
|
|
29
|
+
submissionId: number;
|
|
30
|
+
data: CreateSubmissionDto;
|
|
31
|
+
}, unknown>;
|
|
32
|
+
export declare const useUpdateSubmissionStatus: () => import('@tanstack/react-query').UseMutationResult<import('@edifice.io/collect-client-rest').SubmissionDto, Error, {
|
|
33
|
+
collectionId: number;
|
|
34
|
+
submissionId: number;
|
|
35
|
+
data: UpdateSubmissionStatusDto;
|
|
36
|
+
}, unknown>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { VisibleBookmark, VisibleGroup, VisibleUser } from '../api/user.service';
|
|
2
|
+
export type Visible = VisibleUser | VisibleGroup | VisibleBookmark;
|
|
3
|
+
export interface Config {
|
|
4
|
+
maxDepth: number;
|
|
5
|
+
recallDelayMinutes: number;
|
|
6
|
+
getVisibleStrategy: "all-at-once" | "filtered";
|
|
7
|
+
}
|
|
8
|
+
export declare const userQueryOptions: {
|
|
9
|
+
base: readonly ["user"];
|
|
10
|
+
/**
|
|
11
|
+
* Get a filtered list of visible users. Filtering is done by the *backend*.
|
|
12
|
+
* @param search The search string to filter the users
|
|
13
|
+
* @returns The query options for the search visible users
|
|
14
|
+
*/
|
|
15
|
+
searchVisibles(search?: string, includeHidden?: boolean): import('@tanstack/react-query').OmitKeyof<import('@tanstack/react-query').UseQueryOptions<import('../api/user.service').SearchVisiblesResponse, Error, import('../api/user.service').SearchVisiblesResponse, readonly ["user", "search", {
|
|
16
|
+
search: string;
|
|
17
|
+
} | undefined, {
|
|
18
|
+
includeHidden: true;
|
|
19
|
+
} | undefined]>, "queryFn"> & {
|
|
20
|
+
queryFn?: import('@tanstack/react-query').QueryFunction<import('../api/user.service').SearchVisiblesResponse, readonly ["user", "search", {
|
|
21
|
+
search: string;
|
|
22
|
+
} | undefined, {
|
|
23
|
+
includeHidden: true;
|
|
24
|
+
} | undefined], never> | undefined;
|
|
25
|
+
} & {
|
|
26
|
+
queryKey: readonly ["user", "search", {
|
|
27
|
+
search: string;
|
|
28
|
+
} | undefined, {
|
|
29
|
+
includeHidden: true;
|
|
30
|
+
} | undefined] & {
|
|
31
|
+
[dataTagSymbol]: import('../api/user.service').SearchVisiblesResponse;
|
|
32
|
+
[dataTagErrorSymbol]: Error;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Get users belonging to a specific group
|
|
37
|
+
* @param groupId The ID of the group to fetch users from
|
|
38
|
+
* @returns The query options for fetching users by group
|
|
39
|
+
*/
|
|
40
|
+
fetchUsersByGroup(groupId: string): import('@tanstack/react-query').OmitKeyof<import('@tanstack/react-query').UseQueryOptions<import('../api/user.service').UserForGroup[], Error, import('../api/user.service').UserForGroup[], readonly ["user", "group", string]>, "queryFn"> & {
|
|
41
|
+
queryFn?: import('@tanstack/react-query').QueryFunction<import('../api/user.service').UserForGroup[], readonly ["user", "group", string], never> | undefined;
|
|
42
|
+
} & {
|
|
43
|
+
queryKey: readonly ["user", "group", string] & {
|
|
44
|
+
[dataTagSymbol]: import('../api/user.service').UserForGroup[];
|
|
45
|
+
[dataTagErrorSymbol]: Error;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
fetchSharebookmark(sharebookmarkId: string): import('@tanstack/react-query').OmitKeyof<import('@tanstack/react-query').UseQueryOptions<import('../api/user.service').FetchSharebookmarkResponse, Error, import('../api/user.service').FetchSharebookmarkResponse, readonly ["user", "sharebookmark", string]>, "queryFn"> & {
|
|
49
|
+
queryFn?: import('@tanstack/react-query').QueryFunction<import('../api/user.service').FetchSharebookmarkResponse, readonly ["user", "sharebookmark", string], never> | undefined;
|
|
50
|
+
} & {
|
|
51
|
+
queryKey: readonly ["user", "sharebookmark", string] & {
|
|
52
|
+
[dataTagSymbol]: import('../api/user.service').FetchSharebookmarkResponse;
|
|
53
|
+
[dataTagErrorSymbol]: Error;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Hook to get the list of visible users
|
|
59
|
+
* @param search The search string to filter the users
|
|
60
|
+
* @returns list of visible users
|
|
61
|
+
*/
|
|
62
|
+
export declare const useSearchVisible: (options?: {
|
|
63
|
+
includeHidden?: boolean;
|
|
64
|
+
}) => {
|
|
65
|
+
searchVisible: (search: string) => Promise<import('../api/user.service').SearchVisiblesResponse>;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Hook to fetch users belonging to a specific group
|
|
69
|
+
* @param groupId The ID of the group to fetch users from
|
|
70
|
+
* @returns Query result with users and groups in the specified group
|
|
71
|
+
*/
|
|
72
|
+
export declare const useFetchUsersByGroup: (groupId: string) => {
|
|
73
|
+
users: VisibleUser[];
|
|
74
|
+
isLoading: boolean;
|
|
75
|
+
error: Error | null;
|
|
76
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
interface CollectionActionState {
|
|
2
|
+
isDeleteModalOpen: boolean;
|
|
3
|
+
deleteCollectionId: number | null;
|
|
4
|
+
isInstructionModalOpen: boolean;
|
|
5
|
+
isPastDeadline: boolean;
|
|
6
|
+
onOpenDeleteModal: (id: number) => void;
|
|
7
|
+
onCloseDeleteModal: () => void;
|
|
8
|
+
onOpenInstructionModal: () => void;
|
|
9
|
+
onCloseInstructionModal: () => void;
|
|
10
|
+
setIsPastDeadline: (isPast: boolean) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const useCollectionActionStore: {
|
|
13
|
+
(): CollectionActionState;
|
|
14
|
+
<U>(selector: (state: CollectionActionState) => U): U;
|
|
15
|
+
<U>(selector: (state: CollectionActionState) => U, equalityFn: (a: U, b: U) => boolean): U;
|
|
16
|
+
} & import('zustand').StoreApi<CollectionActionState> & {
|
|
17
|
+
use: {
|
|
18
|
+
isDeleteModalOpen: () => boolean;
|
|
19
|
+
deleteCollectionId: () => number | null;
|
|
20
|
+
isInstructionModalOpen: () => boolean;
|
|
21
|
+
isPastDeadline: () => boolean;
|
|
22
|
+
onOpenDeleteModal: () => (id: number) => void;
|
|
23
|
+
onCloseDeleteModal: () => () => void;
|
|
24
|
+
onOpenInstructionModal: () => () => void;
|
|
25
|
+
onCloseInstructionModal: () => () => void;
|
|
26
|
+
setIsPastDeadline: () => (isPast: boolean) => void;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { StoreApi, UseBoundStore } from 'zustand';
|
|
2
|
+
type WithSelectors<S> = S extends {
|
|
3
|
+
getState: () => infer T;
|
|
4
|
+
} ? S & {
|
|
5
|
+
use: {
|
|
6
|
+
[K in keyof T]: () => T[K];
|
|
7
|
+
};
|
|
8
|
+
} : never;
|
|
9
|
+
export declare const createSelectors: <S extends UseBoundStore<StoreApi<object>>>(_store: S) => WithSelectors<S>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SubmissionDto } from '@edifice.io/collect-client-rest';
|
|
2
|
+
interface SubmissionActionState {
|
|
3
|
+
submissionId: number | null;
|
|
4
|
+
submissionContent: string;
|
|
5
|
+
isUpdateSubmissionModalOpen: boolean;
|
|
6
|
+
submissionHasContent: boolean;
|
|
7
|
+
submissionIsLoading: boolean;
|
|
8
|
+
onOpenUpdateSubmissionModal: () => void;
|
|
9
|
+
onCloseUpdateSubmissionModal: () => void;
|
|
10
|
+
setSubmissionData: (content: string, hasContent: boolean) => void;
|
|
11
|
+
setSubmissionIsLoading: (isLoading: boolean) => void;
|
|
12
|
+
hydrateSubmissionContent: (submission: SubmissionDto) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const useSubmissionActionStore: {
|
|
15
|
+
(): SubmissionActionState;
|
|
16
|
+
<U>(selector: (state: SubmissionActionState) => U): U;
|
|
17
|
+
<U>(selector: (state: SubmissionActionState) => U, equalityFn: (a: U, b: U) => boolean): U;
|
|
18
|
+
} & import('zustand').StoreApi<SubmissionActionState> & {
|
|
19
|
+
use: {
|
|
20
|
+
submissionId: () => number | null;
|
|
21
|
+
submissionContent: () => string;
|
|
22
|
+
isUpdateSubmissionModalOpen: () => boolean;
|
|
23
|
+
submissionHasContent: () => boolean;
|
|
24
|
+
submissionIsLoading: () => boolean;
|
|
25
|
+
onOpenUpdateSubmissionModal: () => () => void;
|
|
26
|
+
onCloseUpdateSubmissionModal: () => () => void;
|
|
27
|
+
setSubmissionData: () => (content: string, hasContent: boolean) => void;
|
|
28
|
+
setSubmissionIsLoading: () => (isLoading: boolean) => void;
|
|
29
|
+
hydrateSubmissionContent: () => (submission: SubmissionDto) => void;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SharingItem } from '@edifice.io/react';
|
|
2
|
+
interface UsersCollectionActionState {
|
|
3
|
+
usersCollection: SharingItem[];
|
|
4
|
+
usersToAdd: SharingItem[];
|
|
5
|
+
usersToDelete: SharingItem[];
|
|
6
|
+
setUsersCollection: (usersCollection: SharingItem[]) => void;
|
|
7
|
+
addUsersToAdd: (items: SharingItem[]) => void;
|
|
8
|
+
addUsersToDelete: (items: SharingItem[]) => void;
|
|
9
|
+
resetUsersDiff: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const useUsersCollectionActionStore: {
|
|
12
|
+
(): UsersCollectionActionState;
|
|
13
|
+
<U>(selector: (state: UsersCollectionActionState) => U): U;
|
|
14
|
+
<U>(selector: (state: UsersCollectionActionState) => U, equalityFn: (a: U, b: U) => boolean): U;
|
|
15
|
+
} & import('zustand').StoreApi<UsersCollectionActionState> & {
|
|
16
|
+
use: {
|
|
17
|
+
usersCollection: () => SharingItem[];
|
|
18
|
+
usersToAdd: () => SharingItem[];
|
|
19
|
+
usersToDelete: () => SharingItem[];
|
|
20
|
+
setUsersCollection: () => (usersCollection: SharingItem[]) => void;
|
|
21
|
+
addUsersToAdd: () => (items: SharingItem[]) => void;
|
|
22
|
+
addUsersToDelete: () => (items: SharingItem[]) => void;
|
|
23
|
+
resetUsersDiff: () => () => void;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export {};
|
package/lib/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.table-collections table,.table-submissions table{border-radius:0}.btn.icon-button-hover-no-transition,.btn.icon-button-hover-no-transition span{transition:none}.separator-dashed{height:1px;--color: var(--edifice-gray-400);--dash: 8px;--gap: 6px;background:repeating-linear-gradient(90deg,var(--color) 0 var(--dash),transparent var(--dash) calc(var(--dash) + var(--gap)))}.cancel-gap{margin-left:calc(var(--edifice-gap) * -1);margin-right:-2.4rem}.collectionDescription .tiptap{min-height:150px}#submissionEdit .tiptap{min-height:350px}.wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease,margin-top .25s ease}.wrapper.open{grid-template-rows:1fr;margin-top:12px}.inner{overflow:hidden}.user-rights-list .table-responsive{max-height:70vh}.user-rights-list .table-responsive table{overflow:visible}.user-rights-list .table-responsive table thead{z-index:1}
|
|
1
|
+
.table-collections table,.table-submissions table{border-radius:0}.btn.icon-button-hover-no-transition,.btn.icon-button-hover-no-transition span{transition:none}.separator-dashed{height:1px;--color: var(--edifice-gray-400);--dash: 8px;--gap: 6px;background:repeating-linear-gradient(90deg,var(--color) 0 var(--dash),transparent var(--dash) calc(var(--dash) + var(--gap)))}.cancel-gap{margin-left:calc(var(--edifice-gap) * -1);margin-right:-2.4rem}.collectionDescription .tiptap{min-height:150px}#submissionEdit .tiptap{min-height:350px}.wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease,margin-top .25s ease}.wrapper.open{grid-template-rows:1fr;margin-top:12px}.inner{overflow:hidden}.user-rights-list .table-responsive{max-height:70vh}.user-rights-list .table-responsive table{overflow:visible}.user-rights-list .table-responsive table thead{z-index:1}.instruction-card-border{box-shadow:0 .2rem .6em #0000000a}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edifice.io/collect-frontend",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"author": "Edifice",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "pnpm run typecheck && vite build && vite build --mode lib",
|
|
10
10
|
"build:lib": "vite build --mode lib",
|
|
11
|
-
"build:prod": "
|
|
11
|
+
"build:prod:lib": "vite build --mode lib --debug",
|
|
12
|
+
"build:prod": "NODE_ENV=production pnpm run typecheck && vite build && pnpm run build:prod:lib",
|
|
12
13
|
"clean": "rm -rf dist lib node_modules",
|
|
13
14
|
"dev": "vite",
|
|
14
15
|
"format": "prettier --write .",
|
|
@@ -26,9 +27,9 @@
|
|
|
26
27
|
},
|
|
27
28
|
"dependencies": {
|
|
28
29
|
"@edifice.io/collect-client-rest": "workspace:*",
|
|
29
|
-
"@edifice.io/bootstrap": "2.5.
|
|
30
|
-
"@edifice.io/client": "2.5.
|
|
31
|
-
"@edifice.io/react": "2.5.
|
|
30
|
+
"@edifice.io/bootstrap": "2.5.22",
|
|
31
|
+
"@edifice.io/client": "2.5.22",
|
|
32
|
+
"@edifice.io/react": "2.5.22",
|
|
32
33
|
"@react-spring/web": "9.7.5",
|
|
33
34
|
"@tanstack/react-query": "5.81.5",
|
|
34
35
|
"@uidotdev/usehooks": "2.4.1",
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
"clsx": "2.1.1",
|
|
37
38
|
"i18next": "23.8.1",
|
|
38
39
|
"i18next-http-backend": "2.4.2",
|
|
39
|
-
"ode-explorer": "2.
|
|
40
|
+
"ode-explorer": "2.6.1",
|
|
40
41
|
"pdfjs-dist": "5.4.394",
|
|
41
42
|
"react": "18.3.1",
|
|
42
43
|
"react-dom": "18.3.1",
|