diff --git a/packages/webapp/craco.config.js b/packages/webapp/craco.config.js
deleted file mode 100644
index 4d444d065..000000000
--- a/packages/webapp/craco.config.js
+++ /dev/null
@@ -1,17 +0,0 @@
-const path = require('path');
-
-module.exports = {
- webpack: {
- alias: {
- '@': path.resolve(__dirname, 'src'),
- },
- configure: {
- resolve: {
- fallback: { path: require.resolve('path-browserify') },
- },
- },
- },
- devServer: {
- allowedHosts: process.env.GITPOD_HOST ? 'all' : 'auto'
- },
-};
diff --git a/packages/webapp/index.html b/packages/webapp/index.html
new file mode 100644
index 000000000..74fd7ed88
--- /dev/null
+++ b/packages/webapp/index.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+ Bigcapital
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/webapp/package.json b/packages/webapp/package.json
index 200cca730..0fe44c200 100644
--- a/packages/webapp/package.json
+++ b/packages/webapp/package.json
@@ -18,7 +18,6 @@
"@blueprintjs/timezone": "^4.5.43",
"@casl/ability": "^5.4.3",
"@casl/react": "^2.3.0",
- "@craco/craco": "^5.9.0",
"@emotion/css": "^11.13.4",
"@emotion/react": "^11.13.3",
"@react-oauth/google": "^0.12.2",
@@ -36,7 +35,7 @@
"@tiptap/starter-kit": "2.1.13",
"@types/js-money": "^0.6.1",
"@types/lodash": "^4.14.172",
- "@types/node": "^14.14.9",
+ "@types/node": "^20.16.10",
"@types/ramda": "^0.28.14",
"@types/react": "18.3.4",
"@types/react-body-classname": "^1.1.7",
@@ -67,7 +66,6 @@
"formik": "^2.2.5",
"helmet": "^3.21.0",
"history": "4.10.1",
- "http-proxy-middleware": "^1.0.0",
"js-cookie": "2.2.1",
"js-money": "^0.6.3",
"lodash": "^4.17.15",
@@ -81,16 +79,13 @@
"query-string": "^7.1.1",
"ramda": "^0.27.1",
"react": "^18.2.0",
- "react-app-polyfill": "^1.0.6",
"react-body-classname": "^1.3.1",
"react-colorful": "^5.6.1",
"react-content-loader": "^6.0.1",
- "react-dev-utils": "^11.0.4",
"react-dom": "^18.2.0",
"react-dropzone": "^11.0.1",
"react-dropzone-esm": "^15.0.1",
"react-error-boundary": "^3.0.2",
- "react-error-overlay": "^6.0.9",
"react-helmet": "^6.1.0",
"react-hotkeys-hook": "^3.0.3",
"react-intl-universal": "^2.4.7",
@@ -102,7 +97,6 @@
"react-router": "5.3.4",
"react-router-breadcrumbs-hoc": "^3.2.10",
"react-router-dom": "^5.3.3",
- "react-scripts": "5.0.1",
"react-scroll-sync": "^0.7.1",
"react-scrollbars-custom": "^4.0.21",
"react-sortablejs": "^2.0.11",
@@ -129,17 +123,19 @@
"typescript": "^4.8.3",
"yup": "^0.28.1"
},
+ "devDependencies": {
+ "@vitejs/plugin-react": "^4.3.4",
+ "eslint-config-react-app": "^7.0.1",
+ "vite": "^5.1.6"
+ },
"scripts": {
- "dev": "cross-env PORT=4000 craco start",
- "build": "craco build",
+ "dev": "cross-env PORT=4000 vite",
+ "build": "vite build",
+ "preview": "cross-env PORT=4173 vite preview",
"typecheck": "tsc --noEmit",
"test": "node scripts/test.js",
"storybook": "start-storybook -p 6006"
},
- "proxy": "http://localhost:3000/",
- "resolutions": {
- "react-error-overlay": "6.0.9"
- },
"eslintConfig": {
"extends": [
"react-app",
diff --git a/packages/webapp/setupProxy.tsx b/packages/webapp/setupProxy.tsx
deleted file mode 100644
index 70ca83467..000000000
--- a/packages/webapp/setupProxy.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-const proxy = require('http-proxy-middleware');
-
-module.exports = function(app) {
- app.use(
- '/api',
- proxy({
- target: 'http://localhost:3000',
- changeOrigin: true,
- })
- );
-};
\ No newline at end of file
diff --git a/packages/webapp/src/components/Accounts/AccountsMultiSelect.tsx b/packages/webapp/src/components/Accounts/AccountsMultiSelect.tsx
index c7b2d1e01..fda4588b3 100644
--- a/packages/webapp/src/components/Accounts/AccountsMultiSelect.tsx
+++ b/packages/webapp/src/components/Accounts/AccountsMultiSelect.tsx
@@ -1,13 +1,43 @@
-// @ts-nocheck
import React from 'react';
import { MenuItem } from '@blueprintjs/core';
+import intl from 'react-intl-universal';
import { FMultiSelect } from '../Forms';
import { accountPredicate } from './_components';
-import { MenuItemNestedText } from '../Menu';
import { usePreprocessingAccounts } from './_hooks';
+import { DialogsName } from '@/constants/dialogs';
+import { useDialogActions } from '@/hooks/state/dashboard';
+import { SelectOptionProps } from '@blueprintjs-formik/select';
+
+interface Account {
+ id: number;
+ name: string;
+ code: string;
+ account_level: number;
+ account_type?: string;
+ account_parent_type?: string;
+ account_root_type?: string;
+ account_normal?: string;
+}
+
+interface AccountSelect extends Account, SelectOptionProps { }
+
+type MultiSelectProps = React.ComponentProps;
+
+interface AccountsMultiSelectProps extends Omit {
+ items: AccountSelect[];
+ allowCreate?: boolean;
+ filterByRootTypes?: string[];
+ filterByParentTypes?: string[];
+ filterByTypes?: string[];
+ filterByNormal?: string[];
+}
// Create new account renderer.
-const createNewItemRenderer = (query, active, handleClick) => {
+const createNewItemRenderer = (
+ query: string,
+ active: boolean,
+ handleClick: (event: React.MouseEvent) => void,
+): React.ReactElement => {
return (