touchstudy-core 0.1.95 → 0.1.96

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.
@@ -87,7 +87,7 @@ declare const useClassDetail: ({ history, id, role }: {
87
87
  classList: import("../configs/types").LessonResponse[];
88
88
  filter: import("../configs/types").LessonQuery;
89
89
  selectedLesson: import("../configs/types").LessonResponse | undefined;
90
- openDialog: "Update" | "Create" | "Remove" | undefined;
90
+ openDialog: "Remove" | "Update" | "Create" | undefined;
91
91
  t: any;
92
92
  handleOpenCreateOrUpdateDialog: (value?: import("../configs/types").LessonResponse | undefined) => void;
93
93
  handleOpenDeleteClassDialog: (value: import("../configs/types").LessonResponse) => void;
@@ -7,7 +7,7 @@ declare const useLessonClassList: (courseId: number) => {
7
7
  classList: LessonResponse[];
8
8
  filter: LessonQuery;
9
9
  selectedLesson: LessonResponse | undefined;
10
- openDialog: "Update" | "Create" | "Remove" | undefined;
10
+ openDialog: "Remove" | "Update" | "Create" | undefined;
11
11
  t: any;
12
12
  handleOpenCreateOrUpdateDialog: (value?: LessonResponse | undefined) => void;
13
13
  handleOpenDeleteClassDialog: (value: LessonResponse) => void;
@@ -0,0 +1,2 @@
1
+ import { TeacherQuery } from "../configs/types";
2
+ export declare const getTeacherListApi: (query: TeacherQuery) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -1,6 +1,8 @@
1
- import { TextbookRequest, TextbookSearchQuery, TextbookUpdateRequest } from "../configs/types";
1
+ import { TextbookRequest, TextbookSearchQuery, TextbookShareRequest, TextbookUpdateRequest } from "../configs/types";
2
2
  export declare const getTextbookListApi: (query: TextbookSearchQuery) => Promise<import("axios").AxiosResponse<any, any>>;
3
3
  export declare const getTextbookByIdApi: (textbookId: number) => Promise<import("axios").AxiosResponse<any, any>>;
4
4
  export declare const createTextbookApi: (data: TextbookRequest) => Promise<import("axios").AxiosResponse<any, any>>;
5
5
  export declare const updateTextbookApi: (textbookId: number, data: TextbookUpdateRequest) => Promise<import("axios").AxiosResponse<any, any>>;
6
6
  export declare const deleteTextbookApi: (textbookId: number) => Promise<import("axios").AxiosResponse<any, any>>;
7
+ export declare const shareTextbookApi: (textbookId: number, data: TextbookShareRequest) => Promise<import("axios").AxiosResponse<any, any>>;
8
+ export declare const updateSharedTextbookApi: (textbookId: number, data: TextbookShareRequest) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -0,0 +1,27 @@
1
+ import React, { FC } from "react";
2
+ import { TeacherSimpleResponse } from "../configs/types";
3
+ import { SearchQuery } from "../../../utils/types/searchQuery";
4
+ import { PagingResponse } from "../../../utils/types/pagingResponse";
5
+ interface Props {
6
+ open: boolean;
7
+ selectedShare: number[];
8
+ textSearchShareRef: React.RefObject<HTMLInputElement>;
9
+ handleChangeSearchTextShare: (e: React.ChangeEvent<HTMLInputElement>) => void;
10
+ numSelectedShare: number;
11
+ isCheckAllShare: (userLength: number) => boolean;
12
+ handleSelectAllClickShare: (event: React.ChangeEvent<HTMLInputElement>) => void;
13
+ teachers: TeacherSimpleResponse[];
14
+ handleSortShare: (sortColumnName: string) => void;
15
+ filterShare: SearchQuery;
16
+ pagingShare: PagingResponse;
17
+ handleChangePageShare: (_: any, page: number) => void;
18
+ handleShareModel: (teacherIds: number[], textbookId: number) => Promise<void>;
19
+ isSelectedShare: (id: number) => boolean;
20
+ handleCloseShareDialog: () => void;
21
+ handleClickCheckboxShare: (id: number) => void;
22
+ selectedTeacher: TeacherSimpleResponse | undefined;
23
+ dataId: number;
24
+ isUpdate: boolean;
25
+ }
26
+ declare const ShareToTeacherDialog: FC<Props>;
27
+ export default ShareToTeacherDialog;
@@ -1,11 +1,22 @@
1
+ import { OrderType } from "../../../utils/enums";
1
2
  import { Exam } from "../../Exams/configs/types";
2
- import { ArticleCreateRequest, TextbookDetailResponse, TextbookHeaderTable, TextbookSearchQuery } from "./types";
3
+ import { ArticleCreateRequest, TeacherAcademyHeaderTable, TeacherQuery, TextbookDetailResponse, TextbookHeaderTable, TextbookSearchQuery, TextbookSortBy } from "./types";
4
+ export declare const DEFAULT_TEXTBOOK_SHARE_FILTER: {
5
+ currentPage: number;
6
+ pageSize: number;
7
+ sortColumnDirection: OrderType;
8
+ sortColumnName: TextbookSortBy;
9
+ };
10
+ export declare const DefaultTeacherQuery: TeacherQuery;
3
11
  export declare const TEXTBOOK_HEADERS: TextbookHeaderTable[];
12
+ export declare const SHARE_TEXTBOOK_HEADERS: TextbookHeaderTable[];
13
+ export declare const TEACHER_ACADEMY_HEADERS: TeacherAcademyHeaderTable[];
4
14
  export declare const DEFAULT_ANSWER_COUNT = 5;
5
15
  export declare const ANSWERS_COUNT: number[];
6
16
  export declare const DEFAULT_EXAM_REQUEST: Exam;
7
17
  export declare const TEXTBOOK_PAGE_TITLE: string;
8
18
  export declare const TEXT_BOOK_SEARCH_PLACEHOLDER: string;
19
+ export declare const TEACHER_SEARCH_PLACEHOLDER: string;
9
20
  export declare const TextbookDefaultQuery: TextbookSearchQuery;
10
21
  export declare const TEXTBOOK_URL = "/teacher/textbooks";
11
22
  export declare const ADMIN_TEXTBOOK_URL = "/textbooks";
@@ -6,8 +6,17 @@ export declare enum TextbookSortBy {
6
6
  Title = "Name",
7
7
  SubjectName = "Subject.Name"
8
8
  }
9
+ export declare enum TeacherSortBy {
10
+ CreatedAt = "CreatedAt",
11
+ Name = "UserProfile.FullName",
12
+ Email = "Email",
13
+ PhoneNumber = "UserProfile.PhoneNumber"
14
+ }
9
15
  export declare type TextbookHeaderTable = TableHeaderType;
10
16
  export declare type TextbookSearchQuery = SearchQuery & {};
17
+ export declare type CreatedBy = {
18
+ email: string;
19
+ };
11
20
  export declare type TextbookResponse = {
12
21
  id: number;
13
22
  name: string;
@@ -15,7 +24,20 @@ export declare type TextbookResponse = {
15
24
  totalChapters: number;
16
25
  createdAt: string;
17
26
  isCreatedByAdmin: boolean;
27
+ sharedUsers: string[];
28
+ createdBy: CreatedBy;
29
+ isShared: boolean;
18
30
  };
31
+ export declare type TeacherSimpleResponse = {
32
+ id: number;
33
+ teacherUserId: number;
34
+ teacherName: string;
35
+ teacherEmail: string;
36
+ phoneNumber: string;
37
+ createdAt?: string;
38
+ };
39
+ export declare type TeacherQuery = SearchQuery & {};
40
+ export declare type TeacherAcademyHeaderTable = TableHeaderType;
19
41
  export declare type ChapterOption = {
20
42
  id: number;
21
43
  name: string;
@@ -39,6 +61,9 @@ export declare type TextbookRequest = {
39
61
  export declare type TextbookUpdateRequest = {
40
62
  name: string;
41
63
  };
64
+ export declare type TextbookShareRequest = {
65
+ teacherIds: number[];
66
+ };
42
67
  export declare type TextbookDetailResponse = {
43
68
  id?: number;
44
69
  name: string;
@@ -4,6 +4,7 @@ import { TextbookListProps } from "../views/TextbookList";
4
4
  declare const useTextbookList: (props: TextbookListProps) => {
5
5
  filter: import("../../../utils/types").SearchQuery;
6
6
  textSearchRef: import("react").RefObject<HTMLInputElement>;
7
+ getData: (isLoading?: boolean) => Promise<void>;
7
8
  paging: import("../../..").PagingResponse;
8
9
  textbooks: TextbookResponse[];
9
10
  selectedTextbook: TextbookResponse | undefined;
@@ -0,0 +1,32 @@
1
+ /// <reference types="react" />
2
+ import { TeacherSimpleResponse, TextbookResponse } from "../configs/types";
3
+ export interface TextbookShareProps {
4
+ getData: (isLoading?: boolean) => Promise<void>;
5
+ }
6
+ declare const useTextbookShare: (props: TextbookShareProps) => {
7
+ filterShare: import("../../../utils/types").SearchQuery;
8
+ textSearchShareRef: import("react").RefObject<HTMLInputElement>;
9
+ pagingShare: import("../../..").PagingResponse;
10
+ selectedShare: number[];
11
+ handleSortShare: (sortColumnName: string) => void;
12
+ handleChangeSearchTextShare: (e: import("react").ChangeEvent<HTMLInputElement>) => void;
13
+ handleChangePageShare: (_: any, page: number) => void;
14
+ numSelectedShare: number;
15
+ handleShareTextbook: (teacherIds: number[], textbookId: number) => Promise<void>;
16
+ isSelectedShare: (id: number) => boolean;
17
+ handleOpenShareDialog: (textbook: TextbookResponse) => void;
18
+ handleCloseShareDialog: () => void;
19
+ openShareDialog: boolean;
20
+ isCheckAllShare: (userLength: number) => boolean;
21
+ handleClickCheckboxShare: (id: number) => void;
22
+ handleSelectAllClickShare: (event: React.ChangeEvent<HTMLInputElement>) => void;
23
+ notShared: TeacherSimpleResponse[];
24
+ shared: TeacherSimpleResponse[];
25
+ selectedTeacher: TeacherSimpleResponse | undefined;
26
+ handleOpenUpdateShareDialog: (textbook: TextbookResponse) => void;
27
+ isUpdate: boolean;
28
+ handleUpdateSharedTextbook: (teacherIds: number[], textbookId: number) => Promise<void>;
29
+ handleDisableShare: (textbook: TextbookResponse) => boolean;
30
+ currentModel: TextbookResponse | undefined;
31
+ };
32
+ export default useTextbookShare;
package/dist/index.d.ts CHANGED
@@ -42,7 +42,7 @@ import CustomAsyncSelect from "./components/Selects/CustomAsyncSelect";
42
42
  import ExamDetailView from "./containers/Exams/views/ExamDetailView";
43
43
  import { ExamDetailViewProps } from "./containers/Exams/configs/interfaces";
44
44
  import { Exam, Question, ArticleGroup } from "./containers/Exams/configs/types";
45
- import { useAutoAcademyDomain, useLogin } from "./utils/hooks";
45
+ import { useAutoAcademyDomain, useList, useLogin } from "./utils/hooks";
46
46
  import { LoginAccessTokenRequest, LoginRequest } from "./utils/types/login";
47
47
  import useSwitchAcademy from "./utils/hooks/useSwitchAcademy";
48
48
  import * as ChatTypes from "./components/Chats/configs/types";
@@ -83,5 +83,7 @@ import ClassDetail from "./containers/Classes/views/ClassDetail";
83
83
  import UserList from "./containers/Users/views/UserList";
84
84
  import NotificationDetail from "./containers/Notifications/views/NotificationDetail";
85
85
  import NotificationList from "./containers/Notifications/views/NotificationList";
86
+ import ShareToTeacherDialog from "./containers/Textbooks/components/ShareToTeacherDialog";
87
+ import useTextbookShare from "./containers/Textbooks/hooks/useTextbookShare";
86
88
  export * from "./components/Alerts";
87
- export { diffFromNow, formatTime, utcToLocalTime, setLoading, setReadyRegisterPusher, BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, Login, store, setAlert, setUser, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, LoginWithEmail, NotificationList, CustomPagination, useGoogleSignOut, RecentUserAction, PUSHER_CONFIG, ExamEvent, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, setLanguage, i18n, TheLanguageDropdown, PrintExamView2, TheAcademyDropdown, useTranslation, I18nextProvider, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, minutesToTimeSpan, toISOString, canAccessRoute, CustomSelect, NotificationDetail, CustomAsyncSelect, CustomSelectOption, LoginWithPassword, getRecentUserActionListApi, getAccessToken, ChatContainer, getOrdinalSuffix, IChatContainerProps, IChatItemProps, IChatHeaderProps, IInputChatProps, ChatItemType, useChatContainer, ConversationResponse, usePusherConversation, ExamResultV2, ToastContainer, toast, Role, useLanguage, useSwitchAcademy, LANGUAGES, CustomCreatable, moment, ExamDetailView, ExamDetailViewProps, Exam, Question, ArticleGroup, getAcademyDomain, useSubjectSelect, useLogin, useAutoAcademyDomain, createRecentUserActionListApi, LoginAccessTokenRequest, LoginRequest, setReFetchUserAcademies, ChatTypes, AcademyHeaders, Types, Enums, CoreHooks, Language, ArticleGroupView, AnswerCountSelector, QuestionCountSelector, ScoreSelector, ArticleCategorySelector, SubjectSelector, useCategorySelect, InputText, Textbook, TextbookDetail, TextbookList, timeUtils, Header, DEFAULT_PAGING_RESPONSE, PagingResponse, AcademyList, getErrorMessage, DefaultErrorMessage, useCountDownTimer, useLoadMore, useVirtualizeList, PassCodeCheck, PassCodeCheckProps, LoadingComponent, PrintExamResultView, checkSuperUrl, ClassList, ClassDetail, formatRole, getRole, UserList };
89
+ export { diffFromNow, formatTime, utcToLocalTime, setLoading, setReadyRegisterPusher, BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, Login, store, setAlert, setUser, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, LoginWithEmail, NotificationList, CustomPagination, useGoogleSignOut, RecentUserAction, PUSHER_CONFIG, ExamEvent, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, setLanguage, i18n, TheLanguageDropdown, PrintExamView2, TheAcademyDropdown, useTranslation, I18nextProvider, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, minutesToTimeSpan, toISOString, canAccessRoute, CustomSelect, NotificationDetail, CustomAsyncSelect, CustomSelectOption, LoginWithPassword, getRecentUserActionListApi, getAccessToken, ChatContainer, getOrdinalSuffix, IChatContainerProps, IChatItemProps, IChatHeaderProps, IInputChatProps, ChatItemType, useChatContainer, ConversationResponse, usePusherConversation, ExamResultV2, ToastContainer, toast, Role, useLanguage, useSwitchAcademy, LANGUAGES, CustomCreatable, moment, ExamDetailView, ShareToTeacherDialog, useList, useTextbookShare, ExamDetailViewProps, Exam, Question, ArticleGroup, getAcademyDomain, useSubjectSelect, useLogin, useAutoAcademyDomain, createRecentUserActionListApi, LoginAccessTokenRequest, LoginRequest, setReFetchUserAcademies, ChatTypes, AcademyHeaders, Types, Enums, CoreHooks, Language, ArticleGroupView, AnswerCountSelector, QuestionCountSelector, ScoreSelector, ArticleCategorySelector, SubjectSelector, useCategorySelect, InputText, Textbook, TextbookDetail, TextbookList, timeUtils, Header, DEFAULT_PAGING_RESPONSE, PagingResponse, AcademyList, getErrorMessage, DefaultErrorMessage, useCountDownTimer, useLoadMore, useVirtualizeList, PassCodeCheck, PassCodeCheckProps, LoadingComponent, PrintExamResultView, checkSuperUrl, ClassList, ClassDetail, formatRole, getRole, UserList };