Skip to content

Commit

Permalink
Merge branch 'develop' into feature/zod
Browse files Browse the repository at this point in the history
  • Loading branch information
Luphia authored Sep 9, 2024
2 parents ca9ea8b + 254c76c commit 8f51c48
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 205 deletions.
4 changes: 2 additions & 2 deletions src/components/dashboard_bookmark/dashboard_bookmark.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useRef, useState, useEffect } from 'react';
import { Button } from '@/components/button/button';
// Info: (20240808 - Anna) Alpha版先隱藏(編輯書籤列)
// import { useGlobalCtx } from '@/contexts/global_context';
// import { useModalContext } from '@/contexts/modal_context';
import { useDashboardCtx } from '@/contexts/dashboard_context';
import { FaChevronLeft, FaChevronRight } from 'react-icons/fa6';
import { BOOKMARK_SCROLL_STEP } from '@/constants/config';
Expand Down Expand Up @@ -32,7 +32,7 @@ const bookmarkNameMap: BookmarkNameMap = {
const DashboardBookmark = () => {
const { t } = useTranslation('common');
// Info: (20240808 - Anna) Alpha版先隱藏(編輯書籤列)
// const { addBookmarkModalVisibilityHandler } = useGlobalCtx();
// const { addBookmarkModalVisibilityHandler } = useModalContext();
const { bookmarkList } = useDashboardCtx();
const [isAtScrollStart, setIsAtScrollStart] = useState(true);
const [isAtScrollEnd, setIsAtScrollEnd] = useState(false);
Expand Down
5 changes: 2 additions & 3 deletions src/components/edit_bookmark_modal/edit_bookmark_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ import React, { useEffect } from 'react';
import { Button } from '@/components/button/button';
import { useDashboardCtx } from '@/contexts/dashboard_context';
import useOuterClick from '@/lib/hooks/use_outer_click';
// eslint-disable-next-line import/no-cycle
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { useTranslation } from 'next-i18next';
// import logger from '@/lib/utils/logger';

Expand Down Expand Up @@ -36,7 +35,7 @@ const bookmarkNameMap: BookmarkNameMap = {
const EditBookmarkModal = ({ isModalVisible, modalVisibilityHandler }: IAddBookmarkModal) => {
const { t } = useTranslation('common');
const { bookmarkList, addSelectedBookmarks } = useDashboardCtx();
const { isAddBookmarkModalVisible, addBookmarkModalVisibilityHandler } = useGlobalCtx();
const { isAddBookmarkModalVisible, addBookmarkModalVisibilityHandler } = useModalContext();

const [selectedBookmark, setSelectedBookmark, selectedBookmarkRef] = useStateRef<string[]>([]);

Expand Down
218 changes: 19 additions & 199 deletions src/contexts/global_context.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ import { LAYOUT_BREAKPOINT } from '@/constants/display';
import { LayoutAssertion } from '@/interfaces/layout_assertion';
import ConfirmModal from '@/components/confirm_modal/confirm_modal';
import AddAssetModal from '@/components/add_asset_modal/add_asset_modal';
// eslint-disable-next-line import/no-cycle
import CameraScanner from '@/components/camera_scanner/camera_scanner';
// eslint-disable-next-line import/no-cycle
import PreviewInvoiceModal from '@/components/preview_invoice_modal/preview_invoice_modal';
import {
IPreviewInvoiceModal,
Expand All @@ -18,35 +16,26 @@ import {
import EmbedCodeModal from '@/components/embed_code_modal/embed_code_modal';
import Toast from '@/components/toast/toast';
import { ToastPosition, ToastType } from '@/interfaces/toastify';
// eslint-disable-next-line import/no-cycle
import CreateCompanyModal from '@/components/create_company_modal/create_company_modal';
// eslint-disable-next-line import/no-cycle
import CompanyInvitationModal from '@/components/company_invitation_modal/company_invitation_modal';
import Link from 'next/link';
import { ISUNFA_ROUTE } from '@/constants/url';
import { useRouter } from 'next/router';
import LoadingModal from '@/components/loading_modal/loading_modal';
import { IConfirmModal, dummyConfirmModalData } from '@/interfaces/confirm_modal';
import FilterOptionsModal from '@/components/filter_options_modal/filter_options_modal';
// eslint-disable-next-line import/no-cycle
import AddProjectModal from '@/components/add_project_modal/add_project_modal';
import { useUserCtx } from '@/contexts/user_context';
import { useNotificationCtx } from '@/contexts/notification_context';
import { ProjectStage } from '@/constants/project';
// eslint-disable-next-line import/no-cycle
import EditBookmarkModal from '@/components/edit_bookmark_modal/edit_bookmark_modal';
// eslint-disable-next-line import/no-cycle
import ProfileUploadModal from '@/components/profile_upload_modal/profile_upload_modal';
import SalaryBookConfirmModal from '@/components/salary_book_confirm_modal/salary_book_confirm_modal';
import { ToastId } from '@/constants/toast_id';
import { useTranslation } from 'next-i18next';
// eslint-disable-next-line import/no-cycle
import AddAccountTitleModal from '@/components/add_account_title_modal/add_account_title_modal';
// eslint-disable-next-line import/no-cycle
import EditAccountTitleModal from '@/components/edit_account_title_modal/edit_account_title_modal';
// eslint-disable-next-line import/no-cycle
import TeamSettingModal from '@/components/team_setting_modal/team_setting_modal';
// eslint-disable-next-line import/no-cycle
import TransferCompanyModal from '@/components/transfer_company_modal/transfer_company_modal';
import { UploadType } from '@/constants/file';
import LoginConfirmModal from '@/components/login_confirm_modal/login_confirm_modal';
Expand All @@ -60,16 +49,6 @@ interface IGlobalContext {
isPasskeySupportModalVisible: boolean;
passKeySupportModalVisibilityHandler: () => void;

isAddBookmarkModalVisible: boolean;
addBookmarkModalVisibilityHandler: () => void;

// Todo: (20240909 - Anna) 代碼正在搬動到src/contexts/modal_context.tsx當中,確定全部搬完時,再將這段代碼刪除
// isMessageModalVisible: boolean;
// messageModalVisibilityHandler: () => void;
// messageModalData: IMessageModal;
// messageModalDataHandler: (data: IMessageModal) => void;
// isConfirmModalVisible: boolean;
// confirmModalVisibilityHandler: () => void;
confirmModalData: IConfirmModal;
confirmModalDataHandler: (data: IConfirmModal) => void;

Expand Down Expand Up @@ -114,10 +93,6 @@ interface IGlobalContext {
editAccountTitleModalVisibilityHandler: () => void;
editAccountTitleDataHandler: (id: number) => void;

// Todo: (20240909 - Anna) 代碼正在搬動到src/contexts/modal_context.tsx當中,確定全部搬完時,再將這段代碼刪除
// toastHandler: (props: IToastify) => void;
// eliminateToast: (id?: string) => void;

filterOptionsForHistory: IFilterOptions;
filterOptionsForPending: IFilterOptions;
filterOptionsForContract: IFilterOptions;
Expand Down Expand Up @@ -154,7 +129,6 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
const { reportGeneratedStatus, reportPendingStatus, reportGeneratedStatusHandler } =
useNotificationCtx();

// Todo: (20240909 - Anna) 代碼正在搬動到src/contexts/modal_context.tsx當中,確定全部沒問題時,再將這個註解拿掉
const {
toastHandler,
eliminateToast,
Expand All @@ -163,17 +137,13 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
messageModalData,
isConfirmModalVisible,
confirmModalVisibilityHandler,
isAddBookmarkModalVisible,
addBookmarkModalVisibilityHandler,
} = useModalContext();

const windowSize = useWindowSize();
const [isPasskeySupportModalVisible, setIsPasskeySupportModalVisible] = useState(false);

const [isAddBookmarkModalVisible, setIsAddBookmarkModalVisible] = useState(false);

// Todo: (20240909 - Anna) 代碼正在搬動到src/contexts/modal_context.tsx當中,確定全部搬完時,再將這段代碼刪除
// const [isMessageModalVisible, setIsMessageModalVisible] = useState(false);
// const [messageModalData, setMessageModalData] = useState<IMessageModal>(dummyMessageModalData);
// const [isConfirmModalVisible, setIsConfirmModalVisible] = useState(false);
const [confirmModalData, setConfirmModalData] = useState<IConfirmModal>(dummyConfirmModalData);

const [isAddAssetModalVisible, setIsAddAssetModalVisible] = useState(false);
Expand Down Expand Up @@ -243,24 +213,6 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
setIsPasskeySupportModalVisible(!isPasskeySupportModalVisible);
};

const addBookmarkModalVisibilityHandler = () => {
setIsAddBookmarkModalVisible(!isAddBookmarkModalVisible);
};

// Todo: (20240909 - Anna) 代碼正在搬動到src/contexts/modal_context.tsx當中,確定全部搬完時,再將這段代碼刪除
// const messageModalVisibilityHandler = () => {
// setIsMessageModalVisible(!isMessageModalVisible);
// };

// const messageModalDataHandler = (data: IMessageModal) => {
// setMessageModalData(data);
// };

// Todo: (20240909 - Anna) 代碼正在搬動到src/contexts/modal_context.tsx當中,確定全部搬完時,再將這段代碼刪除
// const confirmModalVisibilityHandler = () => {
// setIsConfirmModalVisible(!isConfirmModalVisible);
// };

const confirmModalDataHandler = (data: IConfirmModal) => {
setConfirmModalData(data);
};
Expand Down Expand Up @@ -382,118 +334,6 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
setIsTOSNPrivacyPolicyConfirmModalVisible(visibility);
};

// Todo: (20240909 - Anna) 代碼正在搬動到src/contexts/modal_context.tsx當中,確定全部搬完時,再將這段代碼刪除
// Info: (20240509 - Julian) toast handler
// const toastHandler = useCallback((props: IToastify) => {
// const {
// // eslint-disable-next-line react/prop-types
// id,
// // eslint-disable-next-line react/prop-types
// type,
// // eslint-disable-next-line react/prop-types
// content,
// // eslint-disable-next-line react/prop-types
// closeable,
// // eslint-disable-next-line react/prop-types
// autoClose: isAutoClose,
// // eslint-disable-next-line react/prop-types
// position: toastPosition,
// // eslint-disable-next-line react/prop-types
// onClose = () => {},
// // eslint-disable-next-line react/prop-types
// onOpen = () => {},
// } = props;

// const bodyStyle =
// 'before:absolute before:h-100vh before:w-5px before:top-0 before:left-0 md:w-400px w-100vw md:scale-100 scale-75 text-sm font-barlow pointer-events-auto';

// const toastId = id;
// const position = toastPosition ?? ToastPosition.TOP_CENTER; // Info:(20240513 - Julian) default position 'top-center'

// // Info:(20240513 - Julian) 如果 closeable 為 false,則 autoClose、closeOnClick、draggable 都會被設為 false
// const autoClose = closeable ? (isAutoClose ?? 5000) : false; // Info:(20240513 - Julian) default autoClose 5000ms

// const closeOnClick = closeable; // Info:(20240513 - Julian) default closeOnClick true
// const draggable = closeable; // Info:(20240513 - Julian) default draggable true
// const closeButton = closeable
// ? () => (
// <div className="h-20px w-20px">
// <RxCross2 size={16} className="text-button-text-secondary" />
// </div>
// )
// : false;

// switch (type) {
// case ToastType.SUCCESS:
// toastify.success(content, {
// icon: <Image src="/icons/success.svg" alt="success" width={24} height={24} />,
// className: `${bodyStyle} before:bg-alert-surface-surface-success`,
// toastId,
// position,
// autoClose,
// closeOnClick,
// draggable,
// closeButton,
// onClose,
// onOpen,
// });
// break;
// case ToastType.ERROR:
// toastify.error(content, {
// icon: <Image src="/icons/error.svg" alt="error" width={24} height={24} />,
// className: `${bodyStyle} before:bg-alert-surface-surface-error`,
// toastId,
// position,
// autoClose,
// closeOnClick,
// draggable,
// closeButton,
// onClose,
// onOpen,
// });
// break;
// case ToastType.WARNING:
// toastify.warning(content, {
// icon: <Image src="/icons/warning.svg" alt="warning" width={24} height={24} />,
// className: `${bodyStyle} before:bg-alert-surface-surface-warning`,
// toastId,
// position,
// autoClose,
// closeOnClick,
// draggable,
// closeButton,
// onClose,
// onOpen,
// });
// break;
// case ToastType.INFO:
// toastify.info(content, {
// icon: <Image src="/icons/info.svg" alt="info" width={24} height={24} />,
// className: `${bodyStyle} before:bg-alert-surface-surface-info`,
// toastId,
// position,
// autoClose,
// closeOnClick,
// draggable,
// closeButton,
// onClose,
// onOpen,
// });
// break;
// default:
// toastify(content);
// break;
// }
// }, []);

// const eliminateToast = (id?: string) => {
// if (id) {
// toastify.dismiss(id);
// } else {
// toastify.dismiss(); // Info:(20240513 - Julian) dismiss all toasts
// }
// };

useEffect(() => {
if (!signedIn) return;

Expand Down Expand Up @@ -585,42 +425,34 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
}
} else {
eliminateToast();
if (router.pathname.includes(ISUNFA_ROUTE.LOGIN)) {
toastHandler({
id: ToastId.ALPHA_TEST_REMINDER,
type: ToastType.INFO,
closeable: true,
autoClose: false,
content: (
<div className="flex items-center justify-between">
<p className="font-barlow text-sm">{t('common:COMMON.ALPHA_TEST_REMINDER')}</p>
</div>
),
});
} else {
eliminateToast(ToastId.ALPHA_TEST_REMINDER);
}
// Info: (20240909 - Anna) 為了不顯示「Alpha 版本的資料只用於測試」這個彈窗,所以先註解掉,未來需要用到時再解開
// if (router.pathname.includes(ISUNFA_ROUTE.LOGIN)) {
// toastHandler({
// id: ToastId.ALPHA_TEST_REMINDER,
// type: ToastType.INFO,
// closeable: true,
// autoClose: false,
// content: (
// <div className="flex items-center justify-between">
// <p className="font-barlow text-sm">{t('common:COMMON.ALPHA_TEST_REMINDER')}</p>
// </div>
// ),
// });
// } else {
// eliminateToast(ToastId.ALPHA_TEST_REMINDER);
// }
}
}, [pathname, signedIn]);

// Info: (20240830 - Anna) 為了拿掉react/jsx-no-constructed-context-values註解,所以使用useMemo hook

// Todo: (20240909 - Anna) 代碼正在搬動到src/contexts/modal_context.tsx當中,確定全部搬完時,再將這段代碼刪除
const value = useMemo(
() => ({
width,
height,
layoutAssertion,
isPasskeySupportModalVisible,
passKeySupportModalVisibilityHandler,
isAddBookmarkModalVisible,
addBookmarkModalVisibilityHandler,
// isMessageModalVisible,
// messageModalVisibilityHandler,
// messageModalData,
// messageModalDataHandler,
// isConfirmModalVisible,
// confirmModalVisibilityHandler,
confirmModalData,
confirmModalDataHandler,
isAddAssetModalVisible,
Expand All @@ -646,8 +478,6 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
isEditAccountTitleModalVisible,
editAccountTitleModalVisibilityHandler,
editAccountTitleDataHandler,
// toastHandler,
// eliminateToast,

filterOptionsForHistory,
filterOptionsForPending,
Expand Down Expand Up @@ -680,14 +510,6 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
layoutAssertion,
isPasskeySupportModalVisible,
passKeySupportModalVisibilityHandler,
isAddBookmarkModalVisible,
addBookmarkModalVisibilityHandler,
// isMessageModalVisible,
// messageModalVisibilityHandler,
// messageModalData,
// messageModalDataHandler,
// isConfirmModalVisible,
// confirmModalVisibilityHandler,
confirmModalData,
confirmModalDataHandler,
isAddAssetModalVisible,
Expand All @@ -713,8 +535,6 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
isEditAccountTitleModalVisible,
editAccountTitleModalVisibilityHandler,
editAccountTitleDataHandler,
// toastHandler,
// eliminateToast,

filterOptionsForHistory,
filterOptionsForPending,
Expand Down Expand Up @@ -749,7 +569,7 @@ export const GlobalProvider = ({ children }: IGlobalProvider) => {
isModalVisible={isPasskeySupportModalVisible}
modalVisibilityHandler={passKeySupportModalVisibilityHandler}
/>
{/* Todo: (20240829 - Anna) 修改循環引用問題 */}

<EditBookmarkModal
isModalVisible={isAddBookmarkModalVisible}
modalVisibilityHandler={addBookmarkModalVisibilityHandler}
Expand Down
Loading

0 comments on commit 8f51c48

Please sign in to comment.