Skip to content

Commit

Permalink
merge dev
Browse files Browse the repository at this point in the history
  • Loading branch information
gibbs.shih committed Sep 10, 2024
2 parents 9150037 + fc1827a commit 685bc05
Show file tree
Hide file tree
Showing 123 changed files with 723 additions and 1,046 deletions.
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "iSunFA",
"version": "0.8.0+74",
"version": "0.8.1",
"private": false,
"scripts": {
"dev": "next dev",
Expand Down Expand Up @@ -31,6 +31,7 @@
"date-fns": "^3.6.0",
"dotenv": "^16.4.5",
"formidable": "^3.5.1",
"html2canvas": "^1.4.1",
"i18next": "^23.11.5",
"jest-mock-extended": "^3.0.7",
"jsonwebtoken": "^9.0.2",
Expand Down Expand Up @@ -59,7 +60,8 @@
"tailwind-merge": "^2.2.2",
"ts-node": "^10.9.2",
"uuid": "^10.0.0",
"winston": "^3.14.2"
"winston": "^3.14.2",
"zod": "^3.23.8"
},
"devDependencies": {
"@babel/eslint-plugin": "^7.25.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { FaRegSquarePlus } from 'react-icons/fa6';
import { FiEdit } from 'react-icons/fi';
import { RiDeleteBinLine } from 'react-icons/ri';
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { useAccountingCtx } from '@/contexts/accounting_context';
import { IAccount } from '@/interfaces/accounting_account';
import { MessageType } from '@/interfaces/message_modal';
Expand Down Expand Up @@ -30,9 +31,8 @@ const AccountingRow = ({ rowData, actionType }: IAccountingTitleRowProps) => {
addAccountTitleDataHandler,
editAccountTitleModalVisibilityHandler,
editAccountTitleDataHandler,
messageModalDataHandler,
messageModalVisibilityHandler,
} = useGlobalCtx();
const { messageModalDataHandler, messageModalVisibilityHandler } = useModalContext();
const { selectedCompany } = useUserCtx();
const { deleteOwnAccountTitle } = useAccountingCtx();
const { id, code, name } = rowData;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ import { Button } from '@/components/button/button';
import Skeleton from '@/components/skeleton/skeleton';
import { useUserCtx } from '@/contexts/user_context';
import { useAccountingCtx } from '@/contexts/accounting_context';
// eslint-disable-next-line import/no-cycle
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import APIHandler from '@/lib/utils/api_handler';
import { APIName } from '@/constants/api_connection';
import { IAccount } from '@/interfaces/accounting_account';
Expand All @@ -28,7 +27,7 @@ const AddAccountTitleModal = ({
}: IAddAccountTitleModalProps) => {
const { t } = useTranslation(['common', 'setting']);
const { selectedCompany } = useUserCtx();
const { toastHandler } = useGlobalCtx();
const { toastHandler } = useModalContext();
const { getAccountListHandler } = useAccountingCtx();

const { accountId } = modalData;
Expand Down
6 changes: 3 additions & 3 deletions src/components/add_asset_modal/add_asset_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ const AddAssetModal = ({ isModalVisible, modalVisibilityHandler }: IAddAssetModa
alt="twd_icon"
className="rounded-full"
/>
<p>{t('journal:JOURNAL.TWD')}</p>
<p>{t('common:COMMON.TWD')}</p>
</div>
</div>
</div>
Expand Down Expand Up @@ -198,7 +198,7 @@ const AddAssetModal = ({ isModalVisible, modalVisibilityHandler }: IAddAssetModa
alt="twd_icon"
className="rounded-full"
/>
<p>{t('journal:JOURNAL.TWD')}</p>
<p>{t('common:COMMON.TWD')}</p>
</div>
</div>
</div>
Expand Down Expand Up @@ -288,7 +288,7 @@ const AddAssetModal = ({ isModalVisible, modalVisibilityHandler }: IAddAssetModa
>
<option value="year">{t('common:COMMON.YEAR')}</option>
<option value="month">{t('common:COMMON.MONTH')}</option>
<option value="day">{t('journal:ADD_ASSET_MODAL.DAY')}</option>
<option value="day">{t('common:COMMON.DAY')}</option>
</select>
</div>
</div>
Expand Down
4 changes: 2 additions & 2 deletions src/components/add_journal_body/add_journal_body.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import { AccountingStep } from '@/interfaces/stepper_string';
import { useAccountingCtx } from '@/contexts/accounting_context';
import { useTranslation } from 'next-i18next';
import { IMessageModal, MessageType } from '@/interfaces/message_modal';
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';

const AddJournalBody = () => {
const { t } = useTranslation(['common', 'journal']);
const { messageModalVisibilityHandler, messageModalDataHandler } = useGlobalCtx();
const { messageModalVisibilityHandler, messageModalDataHandler } = useModalContext();

const {
selectedOCR,
Expand Down
7 changes: 3 additions & 4 deletions src/components/add_project_modal/add_project_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ import { FiSearch } from 'react-icons/fi';
import { IMember, dummyMemberList } from '@/interfaces/member';
import { useTranslation } from 'next-i18next';
import { useUserCtx } from '@/contexts/user_context';
// eslint-disable-next-line import/no-cycle
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { APIName } from '@/constants/api_connection';
import APIHandler from '@/lib/utils/api_handler';
import { MessageType } from '@/interfaces/message_modal';
Expand Down Expand Up @@ -54,7 +53,7 @@ const AddProjectModal = ({
}: IAddProjectModalProps) => {
const { t } = useTranslation(['common', 'project']);
const { selectedCompany } = useUserCtx();
const { messageModalDataHandler, messageModalVisibilityHandler } = useGlobalCtx();
const { messageModalDataHandler, messageModalVisibilityHandler } = useModalContext();

const {
trigger: createProject,
Expand Down Expand Up @@ -138,7 +137,7 @@ const AddProjectModal = ({
content: t('project:PROJECT.CREATE_PROJECT_FAILED'),
subMsg: t('common:COMMON.ERROR_CODE', { code }),
submitBtnFunction: messageModalVisibilityHandler,
submitBtnStr: t('project:PROJECT.OK'),
submitBtnStr: t('common:COMMON.OK'),
});
}
}, [createSuccess, data]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -399,14 +399,14 @@ const AnalysisReportSection = () => {
{/* Info: (20240513 - Shirley) desktop heading */}
<div className="hidden flex-col justify-center text-4xl font-semibold leading-10 text-text-neutral-secondary max-md:max-w-full max-md:pr-5 md:flex">
<div className="w-full justify-center px-10 md:px-28">
{t('report_401:REPORTS_SIDEBAR.ANALYSIS_REPORTS')}
{t('common:COMMON.ANALYSIS_REPORTS')}
</div>
</div>
{/* Info: (20240513 - Shirley) mobile heading */}
<div className="flex w-600px max-w-full flex-1 md:hidden">
<div className="mx-4 flex space-x-2">
<Image src={'/icons/report.svg'} width={30} height={30} alt="report_icon" />
<div className="mt-1.5">{t('report_401:REPORTS_SIDEBAR.ANALYSIS_REPORTS')}</div>
<div className="mt-1.5">{t('common:COMMON.ANALYSIS_REPORTS')}</div>
</div>
</div>

Expand Down
7 changes: 2 additions & 5 deletions src/components/camera_scanner/camera_scanner.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@ import { FiRotateCw, FiCrop } from 'react-icons/fi';
import { PiCameraLight } from 'react-icons/pi';
import { GrLinkNext } from 'react-icons/gr';
import { TbArrowBackUp } from 'react-icons/tb';

// ToDo: (20240523 - Luphia) fix loop import issue
// eslint-disable-next-line import/no-cycle
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { useAccountingCtx } from '@/contexts/accounting_context';
import APIHandler from '@/lib/utils/api_handler';
import { APIName } from '@/constants/api_connection';
Expand All @@ -34,7 +31,7 @@ enum ScannerStep {

const CameraScanner = ({ isModalVisible, modalVisibilityHandler }: ICameraScannerProps) => {
const { t } = useTranslation(['common', 'journal']);
const { messageModalDataHandler, messageModalVisibilityHandler } = useGlobalCtx();
const { messageModalDataHandler, messageModalVisibilityHandler } = useModalContext();
const { selectedCompany } = useUserCtx();
const { setInvoiceIdHandler } = useAccountingCtx();
const {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { RoleName } from '@/constants/role_name';
import { UploadType } from '@/constants/file';
import { ISUNFA_ROUTE } from '@/constants/url';
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { useUserCtx } from '@/contexts/user_context';
import { ICompany, ICompanyAndRole } from '@/interfaces/company';
import { MessageType } from '@/interfaces/message_modal';
Expand All @@ -29,12 +30,11 @@ const CompanyInfoPageBody = () => {
const hasCompanyId = isAuthLoading === false && !!selectedCompany?.id;
const {
teamSettingModalVisibilityHandler,
messageModalVisibilityHandler,
messageModalDataHandler,
transferCompanyModalVisibilityHandler,
profileUploadModalVisibilityHandler,
profileUploadModalDataHandler,
} = useGlobalCtx();
const { messageModalVisibilityHandler, messageModalDataHandler } = useModalContext();

const [company, setCompany] = useState<ICompany | null>(selectedCompany);
const [ownerId, setOwnerId] = useState<number | null>(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ import { Button } from '@/components/button/button';
import { RxCross2 } from 'react-icons/rx';
import { IToastify, ToastType } from '@/interfaces/toastify';
import { ToastId } from '@/constants/toast_id';
// eslint-disable-next-line import/no-cycle
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { MessageType } from '@/interfaces/message_modal';
import APIHandler from '@/lib/utils/api_handler';
import { APIName } from '@/constants/api_connection';
Expand Down Expand Up @@ -35,7 +34,7 @@ const CompanyInvitationModal = ({
success,
} = APIHandler<IAdmin>(APIName.COMPANY_ADD_BY_INVITATION_CODE);

const { messageModalVisibilityHandler, messageModalDataHandler } = useGlobalCtx();
const { messageModalVisibilityHandler, messageModalDataHandler } = useModalContext();

useEffect(() => {
if (success && adminData) {
Expand Down
9 changes: 4 additions & 5 deletions src/components/confirm_modal/confirm_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ import { ILineItem } from '@/interfaces/line_item';
import AccountingVoucherRow from '@/components/accounting_voucher_row/accounting_voucher_row';
import AccountingVoucherRowMobile from '@/components/accounting_voucher_row/accounting_voucher_row_mobile';
import { Button } from '@/components/button/button';
// ToDo: (20240527 - Luphia) Fix me
// eslint-disable-next-line import/no-cycle
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { MessageType } from '@/interfaces/message_modal';
import { ToastType } from '@/interfaces/toastify';
import { IJournal } from '@/interfaces/journal';
Expand Down Expand Up @@ -67,7 +65,8 @@ const ConfirmModal = ({
// return '';
// };

const { messageModalVisibilityHandler, messageModalDataHandler, toastHandler } = useGlobalCtx();
const { messageModalVisibilityHandler, messageModalDataHandler, toastHandler } =
useModalContext();

const { journalId, askAIId } = confirmData;

Expand Down Expand Up @@ -397,7 +396,7 @@ const ConfirmModal = ({
<div className="flex flex-col items-end">
<p>
<span className="font-semibold text-text-neutral-primary">{totalPrice}</span>{' '}
{t('journal:JOURNAL.TWD')}
{t('common:COMMON.TWD')}
</p>
<p>
(<span className="font-semibold text-text-neutral-primary">{taxPercentage}%</span>{' '}
Expand Down
5 changes: 2 additions & 3 deletions src/components/create_company_modal/create_company_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import Image from 'next/image';
import React, { useEffect, useState } from 'react';
import { Button } from '@/components/button/button';
import { RxCross2 } from 'react-icons/rx';
// eslint-disable-next-line import/no-cycle
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { useUserCtx } from '@/contexts/user_context';
import useOuterClick from '@/lib/hooks/use_outer_click';
import { FaChevronDown } from 'react-icons/fa';
Expand Down Expand Up @@ -38,7 +37,7 @@ const countryList = [
const CreateCompanyModal = ({ isModalVisible, modalVisibilityHandler }: ICreateCompanyModal) => {
const { t } = useTranslation(['common', 'kyc']);
const router = useRouter();
const { messageModalDataHandler, messageModalVisibilityHandler } = useGlobalCtx();
const { messageModalDataHandler, messageModalVisibilityHandler } = useModalContext();
const { username, selectCompany } = useUserCtx();
const {
targetRef: menuRef,
Expand Down
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
4 changes: 2 additions & 2 deletions src/components/dashboard_overview/dashboard_overview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react';
import { cn } from '@/lib/utils/common';
import { APIName } from '@/constants/api_connection';
import APIHandler from '@/lib/utils/api_handler';
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { ToastType } from '@/interfaces/toastify';
import { useUserCtx } from '@/contexts/user_context';
import { IProfitInsight } from '@/interfaces/project_insight';
Expand All @@ -13,7 +13,7 @@ const DashboardOverview = () => {
const [dashboardOverview, setDashboardOverview] = React.useState<IProfitInsight>(
{} as IProfitInsight
);
const { toastHandler } = useGlobalCtx();
const { toastHandler } = useModalContext();
const { isAuthLoading, selectedCompany } = useUserCtx();
const hasCompanyId = isAuthLoading === false && !!selectedCompany?.id;
const {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { useState, useEffect } from 'react';
import { RxCross2 } from 'react-icons/rx';
import { RiDeleteBinLine } from 'react-icons/ri';
// eslint-disable-next-line import/no-cycle
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { useAccountingCtx } from '@/contexts/accounting_context';
import { useUserCtx } from '@/contexts/user_context';
import { Button } from '@/components/button/button';
Expand All @@ -28,7 +27,8 @@ const EditAccountTitleModal = ({
modalData,
}: IEditAccountTitleModalProps) => {
const { t } = useTranslation(['common', 'setting']);
const { messageModalDataHandler, messageModalVisibilityHandler, toastHandler } = useGlobalCtx();
const { messageModalDataHandler, messageModalVisibilityHandler, toastHandler } =
useModalContext();
const { getAccountListHandler, deleteOwnAccountTitle } = useAccountingCtx();
const { isAuthLoading, selectedCompany } = useUserCtx();
const hasCompanyId = isAuthLoading === false && !!selectedCompany?.id;
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
1 change: 0 additions & 1 deletion src/components/embed_code_modal/embed_code_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ const EmbedCodeModal = ({ isModalVisible, modalVisibilityHandler }: IEmbedCodeMo

const copyClickHandler = () => {
navigator.clipboard.writeText(generatedCode);
window.alert(t('report_401:EMBED_CODE_MODAL.CODE_COPIED_TO_CLIPBOARD'));
};

const generateClickHandler = () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import useOuterClick from '@/lib/hooks/use_outer_click';
import { FinancialReportTypesKey, FinancialReportTypesMap } from '@/interfaces/report_type';
import { ReportLanguagesKey, ReportLanguagesMap } from '@/interfaces/report_language';
import { DUMMY_PROJECTS_MAP } from '@/interfaces/report_project';
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { MessageType } from '@/interfaces/message_modal';
import { LoadingSVG } from '@/components/loading_svg/loading_svg';
import { useUserCtx } from '@/contexts/user_context';
Expand All @@ -29,7 +29,7 @@ const FinancialReportSection = ({ reportType }: IFinancialReportSectionProps) =>
// Info: (20240807 - Anna) 初始化 useRouter
const router = useRouter();
const { t } = useTranslation(['common', 'report_401']);
const { messageModalDataHandler, messageModalVisibilityHandler } = useGlobalCtx();
const { messageModalDataHandler, messageModalVisibilityHandler } = useModalContext();
const { selectedCompany } = useUserCtx();
const {
trigger: generateFinancialReport,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import Tooltip from '@/components/tooltip/tooltip';
import { Button } from '@/components/button/button';
import { cn } from '@/lib/utils/common';
import { useGlobalCtx } from '@/contexts/global_context';
import { useModalContext } from '@/contexts/modal_context';
import { Period } from '@/interfaces/chart_unit';
import {
DUMMY_INCOME_EXPENSE_TREND_CHART_DATA,
Expand Down Expand Up @@ -210,7 +211,7 @@ const LineChart = ({ data }: LineChartProps) => {

const IncomeExpenseTrendChart = () => {
const { t } = useTranslation(['common', 'project']);
const { toastHandler } = useGlobalCtx();
const { toastHandler } = useModalContext();
const { isAuthLoading, selectedCompany } = useUserCtx();
const hasCompanyId = isAuthLoading === false && !!selectedCompany?.id;
const originalDataRef = React.useRef(DUMMY_INCOME_EXPENSE_TREND_CHART_DATA);
Expand Down
Loading

0 comments on commit 685bc05

Please sign in to comment.