diff --git a/services/admin/.github/CODEOWNERS b/.github/CODEOWNERS similarity index 100% rename from services/admin/.github/CODEOWNERS rename to .github/CODEOWNERS diff --git a/services/admin/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md similarity index 100% rename from services/admin/.github/ISSUE_TEMPLATE/bug.md rename to .github/ISSUE_TEMPLATE/bug.md diff --git a/services/admin/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md similarity index 100% rename from services/admin/.github/ISSUE_TEMPLATE/feature.md rename to .github/ISSUE_TEMPLATE/feature.md diff --git a/services/admin/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from services/admin/.github/PULL_REQUEST_TEMPLATE.md rename to .github/PULL_REQUEST_TEMPLATE.md diff --git a/services/admin/.github/workflows/CI.yml b/.github/workflows/CI.yml similarity index 100% rename from services/admin/.github/workflows/CI.yml rename to .github/workflows/CI.yml diff --git a/services/admin/.github/workflows/E2E.yml b/.github/workflows/E2E.yml similarity index 100% rename from services/admin/.github/workflows/E2E.yml rename to .github/workflows/E2E.yml diff --git a/services/admin/.husky/pre-commit b/.husky/pre-commit similarity index 100% rename from services/admin/.husky/pre-commit rename to .husky/pre-commit diff --git a/.pnp.cjs b/.pnp.cjs index 3d8a5754..72610095 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -2906,7 +2906,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@icons-material-virtual-921d85324b/0/cache/@icons-material-npm-0.2.4-7c2363ec33-24baa360cb.zip/node_modules/@icons/material/",\ "packageDependencies": [\ ["@icons/material", "virtual:9ad673d57efd3ca32adfcd6235ec901327e69a37573da93aed14de2a6f08ed99e47965361e3e3f5fdde168457bd535a953ca0f127ca97d45baf16ec5739a6b1a#npm:0.2.4"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["react", "npm:18.2.0"]\ ],\ "packagePeers": [\ @@ -3354,7 +3354,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/file-saver", "npm:2.0.5"],\ ["@types/jest", "npm:29.5.0"],\ ["@types/node", "npm:18.15.11"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["@types/react-color", "npm:3.0.6"],\ ["@types/react-dom", "npm:18.0.11"],\ ["@types/react-outside-click-handler", "npm:1.3.1"],\ @@ -3373,8 +3373,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["env-cmd", "npm:10.1.0"],\ ["eslint", "npm:8.38.0"],\ ["eslint-config-airbnb-base", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:15.0.0"],\ + ["eslint-config-prettier", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:8.8.0"],\ ["eslint-plugin-aliens", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:1.0.10"],\ ["eslint-plugin-import", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:2.27.5"],\ + ["eslint-plugin-prettier", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:4.2.1"],\ ["exceljs", "npm:4.3.0"],\ ["file-saver", "npm:2.0.5"],\ ["html-webpack-plugin", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:5.5.1"],\ @@ -3384,11 +3386,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["lint-staged", "npm:13.2.1"],\ ["mini-css-extract-plugin", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:2.7.5"],\ ["pinst", "npm:3.0.0"],\ - ["prettier", "npm:2.8.3"],\ + ["prettier", "npm:2.8.7"],\ ["react", "npm:18.2.0"],\ ["react-color", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:2.19.3"],\ ["react-cookie", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:4.1.1"],\ ["react-dom", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:18.2.0"],\ + ["react-is", "npm:18.2.0"],\ ["react-outside-click-handler", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:1.3.0"],\ ["react-query", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:3.39.3"],\ ["react-router-dom", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:6.10.0"],\ @@ -3456,7 +3459,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/@team-aliens-design-system-virtual-e0a75de5d2/0/cache/@team-aliens-design-system-npm-1.4.11-d92b4e6579-48e4747726.zip/node_modules/@team-aliens/design-system/",\ "packageDependencies": [\ ["@team-aliens/design-system", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:1.4.11"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["@types/react-dom", "npm:18.0.11"],\ ["@types/react-router-dom", null],\ ["@types/styled-components", "npm:5.1.26"],\ @@ -3857,6 +3860,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["csstype", "npm:3.1.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:18.0.38", {\ + "packageLocation": "./.yarn/cache/@types-react-npm-18.0.38-8793db8e46-34481c79f4.zip/node_modules/@types/react/",\ + "packageDependencies": [\ + ["@types/react", "npm:18.0.38"],\ + ["@types/prop-types", "npm:15.7.5"],\ + ["@types/scheduler", "npm:0.16.3"],\ + ["csstype", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@types/react-color", [\ @@ -4429,7 +4442,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/airbnb-prop-types-virtual-02ca14a476/0/cache/airbnb-prop-types-npm-2.16.0-d794f5271c-393a5988b9.zip/node_modules/airbnb-prop-types/",\ "packageDependencies": [\ ["airbnb-prop-types", "virtual:fb4d56607637381a82b554be3b152a2deb724e5027737d0ae349bc86832aa801e852da1dc68a81dffd9bcdc784ecc0685b796bc98fe35af95b1f2a0cab1f660e#npm:2.16.0"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["array.prototype.find", "npm:2.2.1"],\ ["function.prototype.name", "npm:1.1.5"],\ ["is-regex", "npm:1.1.4"],\ @@ -7655,6 +7668,28 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["eslint-config-prettier", [\ + ["npm:8.8.0", {\ + "packageLocation": "./.yarn/cache/eslint-config-prettier-npm-8.8.0-f1bf18b9b1-1e94c3882c.zip/node_modules/eslint-config-prettier/",\ + "packageDependencies": [\ + ["eslint-config-prettier", "npm:8.8.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:8.8.0", {\ + "packageLocation": "./.yarn/__virtual__/eslint-config-prettier-virtual-86d57ad98f/0/cache/eslint-config-prettier-npm-8.8.0-f1bf18b9b1-1e94c3882c.zip/node_modules/eslint-config-prettier/",\ + "packageDependencies": [\ + ["eslint-config-prettier", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:8.8.0"],\ + ["@types/eslint", "npm:8.37.0"],\ + ["eslint", "npm:8.38.0"]\ + ],\ + "packagePeers": [\ + "@types/eslint",\ + "eslint"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["eslint-import-resolver-node", [\ ["npm:0.3.7", {\ "packageLocation": "./.yarn/cache/eslint-import-resolver-node-npm-0.3.7-65bed19543-3379aacf1d.zip/node_modules/eslint-import-resolver-node/",\ @@ -7778,6 +7813,37 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["eslint-plugin-prettier", [\ + ["npm:4.2.1", {\ + "packageLocation": "./.yarn/cache/eslint-plugin-prettier-npm-4.2.1-ba8e1240f1-b9e839d233.zip/node_modules/eslint-plugin-prettier/",\ + "packageDependencies": [\ + ["eslint-plugin-prettier", "npm:4.2.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:4.2.1", {\ + "packageLocation": "./.yarn/__virtual__/eslint-plugin-prettier-virtual-af217230e5/0/cache/eslint-plugin-prettier-npm-4.2.1-ba8e1240f1-b9e839d233.zip/node_modules/eslint-plugin-prettier/",\ + "packageDependencies": [\ + ["eslint-plugin-prettier", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:4.2.1"],\ + ["@types/eslint", "npm:8.37.0"],\ + ["@types/eslint-config-prettier", null],\ + ["@types/prettier", null],\ + ["eslint", "npm:8.38.0"],\ + ["eslint-config-prettier", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:8.8.0"],\ + ["prettier", "npm:2.8.7"],\ + ["prettier-linter-helpers", "npm:1.0.0"]\ + ],\ + "packagePeers": [\ + "@types/eslint-config-prettier",\ + "@types/eslint",\ + "@types/prettier",\ + "eslint-config-prettier",\ + "eslint",\ + "prettier"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["eslint-scope", [\ ["npm:5.1.1", {\ "packageLocation": "./.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-47e4b6a3f0.zip/node_modules/eslint-scope/",\ @@ -8178,6 +8244,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["fast-diff", [\ + ["npm:1.2.0", {\ + "packageLocation": "./.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-1b5306eaa9.zip/node_modules/fast-diff/",\ + "packageDependencies": [\ + ["fast-diff", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["fast-glob", [\ ["npm:3.2.12", {\ "packageLocation": "./.yarn/cache/fast-glob-npm-3.2.12-162763bbae-0b1990f6ce.zip/node_modules/fast-glob/",\ @@ -13584,10 +13659,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["prettier", [\ - ["npm:2.8.3", {\ - "packageLocation": "./.yarn/cache/prettier-npm-2.8.3-2c5624c4ca-92f2ceb522.zip/node_modules/prettier/",\ + ["npm:2.8.7", {\ + "packageLocation": "./.yarn/cache/prettier-npm-2.8.7-1962ac9483-fdc8f2616f.zip/node_modules/prettier/",\ "packageDependencies": [\ - ["prettier", "npm:2.8.3"]\ + ["prettier", "npm:2.8.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["prettier-linter-helpers", [\ + ["npm:1.0.0", {\ + "packageLocation": "./.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip/node_modules/prettier-linter-helpers/",\ + "packageDependencies": [\ + ["prettier-linter-helpers", "npm:1.0.0"],\ + ["fast-diff", "npm:1.2.0"]\ ],\ "linkType": "HARD"\ }]\ @@ -13878,7 +13963,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["react-color", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:2.19.3"],\ ["@icons/material", "virtual:9ad673d57efd3ca32adfcd6235ec901327e69a37573da93aed14de2a6f08ed99e47965361e3e3f5fdde168457bd535a953ca0f127ca97d45baf16ec5739a6b1a#npm:0.2.4"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["lodash", "npm:4.17.21"],\ ["lodash-es", "npm:4.17.21"],\ ["material-colors", "npm:1.2.6"],\ @@ -13907,7 +13992,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["react-cookie", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:4.1.1"],\ ["@types/hoist-non-react-statics", "npm:3.3.1"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["hoist-non-react-statics", "npm:3.3.2"],\ ["react", "npm:18.2.0"],\ ["universal-cookie", "npm:4.0.4"]\ @@ -13931,7 +14016,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/react-dom-virtual-4a5c884f3b/0/cache/react-dom-npm-18.2.0-dd675bca1c-7d323310be.zip/node_modules/react-dom/",\ "packageDependencies": [\ ["react-dom", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:18.2.0"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["loose-envify", "npm:1.4.0"],\ ["react", "npm:18.2.0"],\ ["scheduler", "npm:0.23.0"]\ @@ -13971,7 +14056,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/react-outside-click-handler-virtual-fb4d566076/0/cache/react-outside-click-handler-npm-1.3.0-7fa0d196a3-c3afc3ce1c.zip/node_modules/react-outside-click-handler/",\ "packageDependencies": [\ ["react-outside-click-handler", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:1.3.0"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["@types/react-dom", "npm:18.0.11"],\ ["airbnb-prop-types", "virtual:fb4d56607637381a82b554be3b152a2deb724e5027737d0ae349bc86832aa801e852da1dc68a81dffd9bcdc784ecc0685b796bc98fe35af95b1f2a0cab1f660e#npm:2.16.0"],\ ["consolidated-events", "npm:2.0.2"],\ @@ -14003,7 +14088,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["react-query", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:3.39.3"],\ ["@babel/runtime", "npm:7.21.0"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["@types/react-dom", "npm:18.0.11"],\ ["@types/react-native", null],\ ["broadcast-channel", "npm:3.7.0"],\ @@ -14036,7 +14121,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["react-router", "virtual:f6253778ed158482d277a0ba3e7f363ccb8a70e428f414a8d1274dcdd514548a7811b44317e5a356ade77f6dc033d303050c996b7b40b1093e03961af9dbf57b#npm:6.10.0"],\ ["@remix-run/router", "npm:1.5.0"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["react", "npm:18.2.0"]\ ],\ "packagePeers": [\ @@ -14059,7 +14144,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["react-router-dom", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:6.10.0"],\ ["@remix-run/router", "npm:1.5.0"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["@types/react-dom", "npm:18.0.11"],\ ["react", "npm:18.2.0"],\ ["react-dom", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:18.2.0"],\ @@ -14086,7 +14171,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/reactcss-virtual-a6e2cd9362/0/cache/reactcss-npm-1.2.3-16f7947bcd-c53e386a08.zip/node_modules/reactcss/",\ "packageDependencies": [\ ["reactcss", "virtual:9ad673d57efd3ca32adfcd6235ec901327e69a37573da93aed14de2a6f08ed99e47965361e3e3f5fdde168457bd535a953ca0f127ca97d45baf16ec5739a6b1a#npm:1.2.3"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["lodash", "npm:4.17.21"],\ ["react", "npm:18.2.0"]\ ],\ @@ -14187,7 +14272,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageLocation": "./.yarn/__virtual__/recoil-virtual-8e5b3e4265/0/cache/recoil-npm-0.7.7-4452f58b67-65edecbcb8.zip/node_modules/recoil/",\ "packageDependencies": [\ ["recoil", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:0.7.7"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["@types/react-dom", "npm:18.0.11"],\ ["@types/react-native", null],\ ["hamt_plus", "npm:1.0.2"],\ @@ -15375,7 +15460,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@emotion/is-prop-valid", "npm:1.2.0"],\ ["@emotion/stylis", "npm:0.8.5"],\ ["@emotion/unitless", "npm:0.7.5"],\ - ["@types/react", "npm:18.0.37"],\ + ["@types/react", "npm:18.0.38"],\ ["@types/react-dom", "npm:18.0.11"],\ ["@types/react-is", null],\ ["babel-plugin-styled-components", "virtual:282587d3a885cdff6aa655f65c5dfc4d88c11d63ab960fc6ce6cbe7a2ef652b1c4c44c567061f660c53c3a38bc0014046874aaada189d0dcfefc7a64bb3403a0#npm:2.1.1"],\ @@ -15383,7 +15468,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["hoist-non-react-statics", "npm:3.3.2"],\ ["react", "npm:18.2.0"],\ ["react-dom", "virtual:d1b6ac0d35ea48fa942c43ca5da8aa0378319e57681aece9cb7882fdb4208f895e8cae3d63be30cbdf9600138df2622dc2e5c020448456a11657b66026c80a52#npm:18.2.0"],\ - ["react-is", null],\ + ["react-is", "npm:18.2.0"],\ ["shallowequal", "npm:1.1.0"],\ ["supports-color", "npm:5.5.0"]\ ],\ diff --git a/.yarn/cache/@types-react-npm-18.0.38-8793db8e46-34481c79f4.zip b/.yarn/cache/@types-react-npm-18.0.38-8793db8e46-34481c79f4.zip new file mode 100644 index 00000000..3219ca0b Binary files /dev/null and b/.yarn/cache/@types-react-npm-18.0.38-8793db8e46-34481c79f4.zip differ diff --git a/.yarn/cache/eslint-config-prettier-npm-8.8.0-f1bf18b9b1-1e94c3882c.zip b/.yarn/cache/eslint-config-prettier-npm-8.8.0-f1bf18b9b1-1e94c3882c.zip new file mode 100644 index 00000000..6401bd22 Binary files /dev/null and b/.yarn/cache/eslint-config-prettier-npm-8.8.0-f1bf18b9b1-1e94c3882c.zip differ diff --git a/.yarn/cache/eslint-plugin-prettier-npm-4.2.1-ba8e1240f1-b9e839d233.zip b/.yarn/cache/eslint-plugin-prettier-npm-4.2.1-ba8e1240f1-b9e839d233.zip new file mode 100644 index 00000000..382aa44c Binary files /dev/null and b/.yarn/cache/eslint-plugin-prettier-npm-4.2.1-ba8e1240f1-b9e839d233.zip differ diff --git a/.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-1b5306eaa9.zip b/.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-1b5306eaa9.zip new file mode 100644 index 00000000..3f06ff5b Binary files /dev/null and b/.yarn/cache/fast-diff-npm-1.2.0-5ba4171bb6-1b5306eaa9.zip differ diff --git a/.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip b/.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip new file mode 100644 index 00000000..ec7b0a0b Binary files /dev/null and b/.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip differ diff --git a/.yarn/cache/prettier-npm-2.8.3-2c5624c4ca-92f2ceb522.zip b/.yarn/cache/prettier-npm-2.8.3-2c5624c4ca-92f2ceb522.zip deleted file mode 100644 index f2b68e68..00000000 Binary files a/.yarn/cache/prettier-npm-2.8.3-2c5624c4ca-92f2ceb522.zip and /dev/null differ diff --git a/.yarn/cache/prettier-npm-2.8.7-1962ac9483-fdc8f2616f.zip b/.yarn/cache/prettier-npm-2.8.7-1962ac9483-fdc8f2616f.zip new file mode 100644 index 00000000..ef951dee Binary files /dev/null and b/.yarn/cache/prettier-npm-2.8.7-1962ac9483-fdc8f2616f.zip differ diff --git a/services/admin/.eslintrc.json b/services/admin/.eslintrc.json index dc754ffa..3d815967 100644 --- a/services/admin/.eslintrc.json +++ b/services/admin/.eslintrc.json @@ -1,7 +1,7 @@ { "root": true, - "plugins": ["aliens"], - "extends": ["eslint:recommended", "plugin:alines/recommended"], + "plugins": ["aliens", "prettier"], + "extends": ["eslint:recommended", "plugin:alines/recommended", "prettier"], "env": { "es6": true } diff --git a/services/admin/package.json b/services/admin/package.json index a3e8dee0..de4e6f47 100644 --- a/services/admin/package.json +++ b/services/admin/package.json @@ -8,7 +8,8 @@ "prepare": "husky install", "lint": "npx eslint --ext .tsx --ext .ts .", "lint:fix": "npx eslint --ext .tsx --ext .ts . --fix", - "e2e": "yarn cypress run" + "e2e": "yarn cypress run", + "prettier": "prettier --write \"src/**/*.ts\"" }, "license": "MIT", "devDependencies": { @@ -22,12 +23,11 @@ "@types/file-saver": "^2", "@types/jest": "^29.2.6", "@types/node": "^18.11.18", - "@types/react": "^18.0.27", + "@types/react": "^18.0.38", "@types/react-color": "^3.0.6", "@types/react-dom": "^18.0.10", "@types/react-outside-click-handler": "^1.3.1", "@types/recoil": "^0.0.9", - "@types/styled-components": "^5.1.26", "babel-loader": "^8.2.5", "case-sensitive-paths-webpack-plugin": "^2.4.0", "clean-webpack-plugin": "^4.0.0", @@ -39,8 +39,10 @@ "env-cmd": "^10.1.0", "eslint": "^8.38.0", "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^8.8.0", "eslint-plugin-aliens": "^1.0.10", "eslint-plugin-import": "^2.27.5", + "eslint-plugin-prettier": "^4.2.1", "html-webpack-plugin": "^5.5.0", "husky": ">=7", "image-webpack-loader": "^8.1.0", @@ -48,7 +50,7 @@ "lint-staged": ">=10", "mini-css-extract-plugin": "^2.6.0", "pinst": ">=2", - "prettier": "2.8.3", + "prettier": "^2.8.7", "style-loader": "^3.3.1", "ts-loader": "^9.3.0", "typescript": "^4.9.4", @@ -68,11 +70,12 @@ "react-color": "^2.19.3", "react-cookie": "^4.1.1", "react-dom": "^18.2.0", + "react-is": "^18.2.0", "react-outside-click-handler": "^1.3.0", "react-query": "^3.39.2", - "react-router-dom": "^6.4.2", + "react-router-dom": "^6.10.0", "recoil": "^0.7.6", - "styled-components": "^5.3.6", + "styled-components": "^5.3.9", "styled-normalize": "^8.0.7" }, "lint-staged": { diff --git a/services/admin/src/components/apply/remains/timeModal.tsx b/services/admin/src/components/apply/remains/timeModal.tsx index 61a0c9a7..03b28a27 100644 --- a/services/admin/src/components/apply/remains/timeModal.tsx +++ b/services/admin/src/components/apply/remains/timeModal.tsx @@ -8,9 +8,10 @@ import { } from 'react'; import styled from 'styled-components'; import { useGetRemainTime, useSetRemainTime } from '@/hooks/useRemainApi'; -import { getDayWithText, getTextWithDay } from '@/utils/translate'; +import { DayToKorean, getDayWithText } from '@/utils/translate'; import { useModal } from '@/hooks/useModal'; import { useForm } from '@/hooks/useForm'; +import { useKeyByValue } from '@/hooks/useKeyByValue'; interface ITimeState { startDay: string; startHour: string; @@ -28,30 +29,30 @@ const minToArray = Array(60) .fill(void 0) .map((_, idx) => `${idx < 10 ? '0' + String(idx) : String(idx)}`); -const dayToArray = ['월', '화', '수', '목', '금', '토', '일']; +const dayToArray: DayToKorean[] = ['월', '화', '수', '목', '금', '토', '일']; export default function TimeModal() { const { data: remainTime } = useGetRemainTime(); const { state: timeState, setState: setTimeState } = useForm({ - startDay: getTextWithDay(remainTime?.start_day_of_week), + startDay: useKeyByValue(getDayWithText, remainTime?.start_day_of_week), startHour: remainTime?.start_time.slice(0, 2), startMin: remainTime?.start_time.slice(3, 5), - endDay: getTextWithDay(remainTime?.end_day_of_week), + endDay: useKeyByValue(getDayWithText, remainTime?.end_day_of_week), endHour: remainTime?.end_time.slice(0, 2), endMin: remainTime?.end_time.slice(3, 5), }); const { closeModal } = useModal(); const { mutate } = useSetRemainTime({ - start_day_of_week: getDayWithText(timeState.startDay), + start_day_of_week: getDayWithText[timeState.startDay], start_time: `${timeState.startHour}:${timeState.startMin}:00`, - end_day_of_week: getDayWithText(timeState.endDay), + end_day_of_week: getDayWithText[timeState.endDay], end_time: `${timeState.endHour}:${timeState.endMin}:00`, }); useEffect(() => { setTimeState({ - startDay: getTextWithDay(remainTime?.start_day_of_week), + startDay: useKeyByValue(getDayWithText, remainTime?.start_day_of_week), startHour: remainTime?.start_time.slice(0, 2), startMin: remainTime?.start_time.slice(3, 5), - endDay: getTextWithDay(remainTime?.end_day_of_week), + endDay: useKeyByValue(getDayWithText ,remainTime?.end_day_of_week), endHour: remainTime?.end_time.slice(0, 2), endMin: remainTime?.end_time.slice(3, 5), }); diff --git a/services/admin/src/components/apply/study/DetailOptions.tsx b/services/admin/src/components/apply/study/DetailOptions.tsx index 24f27db7..f0eaf3b4 100644 --- a/services/admin/src/components/apply/study/DetailOptions.tsx +++ b/services/admin/src/components/apply/study/DetailOptions.tsx @@ -19,9 +19,9 @@ import { import { useModal } from '@/hooks/useModal'; import { SetUseTimeModal } from '@/components/modals/SetUseTime'; -const sex = ['ALL', 'MALE', 'FEMALE'].map((i: SexType) => sexTypeToKorean(i)); +const sex = ['ALL', 'MALE', 'FEMALE'].map((i: SexType) => sexTypeToKorean[i]); -const grade = [0, 1, 2, 3].map((i: GradeType) => gradeTypeToKorean(i)); +const grade = [0, 1, 2, 3].map((i: GradeType) => gradeTypeToKorean[i]); interface PropsType { onChangeSegmented: (sex: SexToKorean) => void; @@ -67,7 +67,7 @@ export function CreateStudyRoomDetailOptions({ <_Wrapper> <_ColumWrapper> diff --git a/services/admin/src/components/apply/study/DetailSummary.tsx b/services/admin/src/components/apply/study/DetailSummary.tsx index b9fd680f..65b3e120 100644 --- a/services/admin/src/components/apply/study/DetailSummary.tsx +++ b/services/admin/src/components/apply/study/DetailSummary.tsx @@ -36,12 +36,12 @@ const detailOptions: DetailOption[] = [ { name: '신청 가능 성별', value: 'available_sex', - func: (item: SexType) => sexTypeToKorean(item), + func: (item: SexType) => sexTypeToKorean[item], }, { name: '신청 가능 학년', value: 'available_grade', - func: (item: GradeType) => gradeTypeToKorean(item), + func: (item: GradeType) => gradeTypeToKorean[item], }, ]; diff --git a/services/admin/src/components/apply/study/SeatSetting.tsx b/services/admin/src/components/apply/study/SeatSetting.tsx index b3843c3f..2a58059c 100644 --- a/services/admin/src/components/apply/study/SeatSetting.tsx +++ b/services/admin/src/components/apply/study/SeatSetting.tsx @@ -12,15 +12,16 @@ import OutsideClickHandler from 'react-outside-click-handler'; import { SeatStatusType } from '@/apis/studyRooms/request'; import { SeatStatusKorean, - seatStatusKoreanToEng, seatStatusToKorean, } from '@/utils/translate'; import { SeatType } from '@/apis/studyRooms/response'; import { SelectedModalType } from '@/context/modal'; import { useStudyRoom } from '@/hooks/useStudyRoom'; +import { useKeyByValue } from '@/hooks/useKeyByValue'; +import React from "react"; const seatStatus = ['AVAILABLE', 'UNAVAILABLE', 'EMPTY'].map( - (i: SeatStatusType) => seatStatusToKorean(i), + (i: SeatStatusType) => seatStatusToKorean[i], ); interface PropsType { @@ -43,7 +44,7 @@ export function SeatSetting({ const { status, type, number } = studyRoomState.seat; const onChangeSeatStatus = (changingStatus: SeatStatusKorean) => { onChangeSeatSetting({ - status: seatStatusKoreanToEng(changingStatus), + status: useKeyByValue(seatStatusToKorean , changingStatus) as SeatStatusType, }); }; const onChangeNumber = (e: ChangeEvent) => { @@ -66,10 +67,10 @@ export function SeatSetting({ placeholder="사용 가능" onChange={onChangeSeatStatus} label="자리 상태" - value={seatStatusToKorean(studyRoomState.seat?.status)} + value={seatStatusToKorean[studyRoomState.seat?.status]} margin={['top', 60]} /> - {seatStatusToKorean(studyRoomState.seat?.status) === '사용 가능' && ( + {seatStatusToKorean[studyRoomState.seat?.status] === '사용 가능' && ( <_Info> - {gradeTypeToKorean(available_grade)} {sexTypeToKorean(available_sex)} + {gradeTypeToKorean[available_grade]} {sexTypeToKorean[available_sex]} {in_use_headcount}/{total_available_seat} diff --git a/services/admin/src/components/main/TagDropDown.tsx b/services/admin/src/components/main/TagDropDown.tsx index dcfabe90..238e078d 100644 --- a/services/admin/src/components/main/TagDropDown.tsx +++ b/services/admin/src/components/main/TagDropDown.tsx @@ -5,6 +5,7 @@ import { Dispatch, SetStateAction, useMemo, useState } from 'react'; import OutsideClickHandler from 'react-outside-click-handler'; import styled from 'styled-components'; import { Tag } from './Tag'; +import React from "react" interface PropsType { refetchSearchStudents: () => void; @@ -38,12 +39,14 @@ export function TagDropDown({ } else setCheckedTagList([...checkedTagList, tagElement]); }; + const outSideClick = () => { + setClick(false); + refetchSearchStudents(); + } + return ( { - setClick(false); - refetchSearchStudents(); - }} + onOutsideClick={outSideClick} > <_TagDropDown>