From 4b5a2bc4e57b2aa58c4a877d8273e1e9bfba77fd Mon Sep 17 00:00:00 2001 From: sriram veeraghanta Date: Fri, 6 Dec 2024 14:56:49 +0530 Subject: [PATCH] chore: lint related changes and packaging fixes (#6163) * fix: lint related changes and packaging fixes * adding color validations --- admin/core/components/admin-sidebar/root.tsx | 2 +- admin/package.json | 5 +- packages/editor/package.json | 3 +- .../core/extensions/callout/logo-selector.tsx | 2 +- .../src/core/extensions/callout/utils.ts | 2 +- packages/eslint-config/package.json | 2 +- packages/helpers/helpers/emoji.helper.ts | 22 - packages/helpers/helpers/index.ts | 2 - packages/helpers/index.ts | 2 - packages/hooks/.eslintignore | 3 + packages/hooks/.eslintrc.js | 9 + packages/hooks/.prettierignore | 4 + packages/hooks/.prettierrc | 5 + packages/hooks/package.json | 27 + .../{helpers/hooks => hooks/src}/index.ts | 0 .../hooks => hooks/src}/use-local-storage.tsx | 0 .../src}/use-outside-click-detector.tsx | 0 packages/{helpers => hooks}/tsconfig.json | 2 +- packages/ui/package.json | 6 +- packages/ui/src/dropdown/multi-select.tsx | 2 +- packages/ui/src/dropdown/single-select.tsx | 2 +- .../ui/src/dropdowns/context-menu/root.tsx | 2 +- packages/ui/src/dropdowns/custom-menu.tsx | 2 +- .../ui/src/dropdowns/custom-search-select.tsx | 27 +- packages/ui/src/dropdowns/custom-select.tsx | 2 +- .../ui/src/emoji/emoji-icon-picker-new.tsx | 2 +- packages/ui/src/emoji/emoji-icon-picker.tsx | 2 +- packages/ui/src/tabs/tabs.tsx | 2 +- packages/utils/.eslintignore | 3 + packages/utils/.eslintrc.js | 9 + packages/utils/.prettierrc | 5 + packages/{helpers => utils}/package.json | 19 +- packages/utils/src/color.ts | 60 + packages/utils/src/emoji.ts | 40 + packages/utils/src/index.ts | 3 + .../string.helper.ts => utils/src/string.ts} | 2 +- packages/utils/tsconfig.json | 9 + space/package.json | 2 +- web/.prettierignore | 5 +- .../[workspaceSlug]/(projects)/sidebar.tsx | 2 +- web/app/profile/sidebar.tsx | 2 +- web/ce/components/issues/quick-add/root.tsx | 2 +- web/core/components/common/logo.tsx | 3 + .../components/core/image-picker-popover.tsx | 2 +- .../cycles/archived-cycles/header.tsx | 2 +- .../components/cycles/cycles-view-header.tsx | 2 +- .../gantt-chart/sidebar/gantt-dnd-HOC.tsx | 2 +- .../calendar/issue-block-root.tsx | 2 +- .../issue-layouts/calendar/issue-block.tsx | 2 +- .../issues/issue-layouts/kanban/block.tsx | 2 +- .../issues/issue-layouts/list/block-root.tsx | 2 +- .../issue-layouts/properties/labels.tsx | 2 +- .../issue-layouts/spreadsheet/issue-row.tsx | 2 +- web/core/components/issues/select/label.tsx | 2 +- .../labels/label-block/label-item-block.tsx | 2 +- .../modules/archived-modules/header.tsx | 2 +- .../components/modules/module-view-header.tsx | 2 +- .../components/pages/list/search-input.tsx | 2 +- web/core/components/profile/sidebar.tsx | 2 +- web/core/components/project/header.tsx | 2 +- .../components/views/view-list-header.tsx | 2 +- .../sidebar/favorites/favorite-folder.tsx | 50 +- .../sidebar/favorites/favorite-items/root.tsx | 48 +- .../sidebar/favorites/new-fav-folder.tsx | 2 +- .../workspace/sidebar/projects-list-item.tsx | 4 +- .../workspace/sidebar/workspace-menu.tsx | 2 +- web/core/hooks/use-dropdown.ts | 2 +- web/core/hooks/use-dynamic-dropdown.tsx | 2 +- web/core/store/workspace/index.ts | 2 - web/package.json | 5 +- yarn.lock | 1461 ++++++++--------- 71 files changed, 1025 insertions(+), 896 deletions(-) delete mode 100644 packages/helpers/helpers/emoji.helper.ts delete mode 100644 packages/helpers/helpers/index.ts delete mode 100644 packages/helpers/index.ts create mode 100644 packages/hooks/.eslintignore create mode 100644 packages/hooks/.eslintrc.js create mode 100644 packages/hooks/.prettierignore create mode 100644 packages/hooks/.prettierrc create mode 100644 packages/hooks/package.json rename packages/{helpers/hooks => hooks/src}/index.ts (100%) rename packages/{helpers/hooks => hooks/src}/use-local-storage.tsx (100%) rename packages/{helpers/hooks => hooks/src}/use-outside-click-detector.tsx (100%) rename packages/{helpers => hooks}/tsconfig.json (88%) create mode 100644 packages/utils/.eslintignore create mode 100644 packages/utils/.eslintrc.js create mode 100644 packages/utils/.prettierrc rename packages/{helpers => utils}/package.json (63%) create mode 100644 packages/utils/src/color.ts create mode 100644 packages/utils/src/emoji.ts create mode 100644 packages/utils/src/index.ts rename packages/{helpers/helpers/string.helper.ts => utils/src/string.ts} (99%) create mode 100644 packages/utils/tsconfig.json diff --git a/admin/core/components/admin-sidebar/root.tsx b/admin/core/components/admin-sidebar/root.tsx index 9ef6b92bd0..05dde0d8ab 100644 --- a/admin/core/components/admin-sidebar/root.tsx +++ b/admin/core/components/admin-sidebar/root.tsx @@ -3,7 +3,7 @@ import { FC, useEffect, useRef } from "react"; import { observer } from "mobx-react"; // plane helpers -import { useOutsideClickDetector } from "@plane/helpers"; +import { useOutsideClickDetector } from "@plane/hooks"; // components import { HelpSection, SidebarMenu, SidebarDropdown } from "@/components/admin-sidebar"; // hooks diff --git a/admin/package.json b/admin/package.json index e4026da02e..ff9bf6a67d 100644 --- a/admin/package.json +++ b/admin/package.json @@ -14,9 +14,10 @@ "dependencies": { "@headlessui/react": "^1.7.19", "@plane/constants": "*", - "@plane/helpers": "*", + "@plane/hooks": "*", "@plane/types": "*", "@plane/ui": "*", + "@plane/utils": "*", "@sentry/nextjs": "^8.32.0", "@tailwindcss/typography": "^0.5.9", "@types/lodash": "^4.17.0", @@ -26,7 +27,7 @@ "lucide-react": "^0.356.0", "mobx": "^6.12.0", "mobx-react": "^9.1.1", - "next": "^14.2.12", + "next": "^14.2.20", "next-themes": "^0.2.1", "postcss": "^8.4.38", "react": "^18.3.1", diff --git a/packages/editor/package.json b/packages/editor/package.json index 8471513c97..19c361629b 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -27,6 +27,7 @@ "dev": "tsup --watch", "check-types": "tsc --noEmit", "lint": "eslint src --ext .ts,.tsx", + "lint:errors": "eslint src --ext .ts,.tsx --quiet", "format": "prettier --write \"**/*.{ts,tsx,md}\"" }, "peerDependencies": { @@ -36,8 +37,8 @@ "dependencies": { "@floating-ui/react": "^0.26.4", "@hocuspocus/provider": "^2.13.5", - "@plane/helpers": "*", "@plane/ui": "*", + "@plane/utils": "*", "@tiptap/core": "^2.1.13", "@tiptap/extension-blockquote": "^2.1.13", "@tiptap/extension-character-count": "^2.6.5", diff --git a/packages/editor/src/core/extensions/callout/logo-selector.tsx b/packages/editor/src/core/extensions/callout/logo-selector.tsx index 4e9f966aff..4c78a2c047 100644 --- a/packages/editor/src/core/extensions/callout/logo-selector.tsx +++ b/packages/editor/src/core/extensions/callout/logo-selector.tsx @@ -1,5 +1,5 @@ // plane helpers -import { convertHexEmojiToDecimal } from "@plane/helpers"; +import { convertHexEmojiToDecimal } from "@plane/utils"; // plane ui import { EmojiIconPicker, EmojiIconPickerTypes, Logo, TEmojiLogoProps } from "@plane/ui"; // helpers diff --git a/packages/editor/src/core/extensions/callout/utils.ts b/packages/editor/src/core/extensions/callout/utils.ts index c450cbdd2d..6568a40e3e 100644 --- a/packages/editor/src/core/extensions/callout/utils.ts +++ b/packages/editor/src/core/extensions/callout/utils.ts @@ -1,5 +1,5 @@ // plane helpers -import { sanitizeHTML } from "@plane/helpers"; +import { sanitizeHTML } from "@plane/utils"; // plane ui import { TEmojiLogoProps } from "@plane/ui"; // types diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index e8de3524ce..8487dbb47d 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -10,7 +10,7 @@ "devDependencies": { "@typescript-eslint/eslint-plugin": "^8.6.0", "@typescript-eslint/parser": "^8.6.0", - "eslint": "8", + "eslint": "8.57.1", "eslint-config-next": "^14.1.0", "eslint-config-prettier": "^9.1.0", "eslint-config-turbo": "^1.12.4", diff --git a/packages/helpers/helpers/emoji.helper.ts b/packages/helpers/helpers/emoji.helper.ts deleted file mode 100644 index e0d5a1969c..0000000000 --- a/packages/helpers/helpers/emoji.helper.ts +++ /dev/null @@ -1,22 +0,0 @@ -export const convertHexEmojiToDecimal = (emojiUnified: string): string => { - if (!emojiUnified) return ""; - - return emojiUnified - .toString() - .split("-") - .map((e) => parseInt(e, 16)) - .join("-"); -}; - -export const emojiCodeToUnicode = (emoji: string) => { - if (!emoji) return ""; - - // convert emoji code to unicode - const uniCodeEmoji = emoji - .toString() - .split("-") - .map((emoji) => parseInt(emoji, 10).toString(16)) - .join("-"); - - return uniCodeEmoji; -}; diff --git a/packages/helpers/helpers/index.ts b/packages/helpers/helpers/index.ts deleted file mode 100644 index e800e98fdc..0000000000 --- a/packages/helpers/helpers/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./emoji.helper" -export * from "./string.helper" \ No newline at end of file diff --git a/packages/helpers/index.ts b/packages/helpers/index.ts deleted file mode 100644 index f1216272dd..0000000000 --- a/packages/helpers/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./helpers"; -export * from "./hooks"; diff --git a/packages/hooks/.eslintignore b/packages/hooks/.eslintignore new file mode 100644 index 0000000000..6019047c3e --- /dev/null +++ b/packages/hooks/.eslintignore @@ -0,0 +1,3 @@ +build/* +dist/* +out/* \ No newline at end of file diff --git a/packages/hooks/.eslintrc.js b/packages/hooks/.eslintrc.js new file mode 100644 index 0000000000..558b8f76ed --- /dev/null +++ b/packages/hooks/.eslintrc.js @@ -0,0 +1,9 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + root: true, + extends: ["@plane/eslint-config/library.js"], + parser: "@typescript-eslint/parser", + parserOptions: { + project: true, + }, +}; diff --git a/packages/hooks/.prettierignore b/packages/hooks/.prettierignore new file mode 100644 index 0000000000..d5be669c5e --- /dev/null +++ b/packages/hooks/.prettierignore @@ -0,0 +1,4 @@ +.turbo +out/ +dist/ +build/ \ No newline at end of file diff --git a/packages/hooks/.prettierrc b/packages/hooks/.prettierrc new file mode 100644 index 0000000000..87d988f1b2 --- /dev/null +++ b/packages/hooks/.prettierrc @@ -0,0 +1,5 @@ +{ + "printWidth": 120, + "tabWidth": 2, + "trailingComma": "es5" +} diff --git a/packages/hooks/package.json b/packages/hooks/package.json new file mode 100644 index 0000000000..4473a41321 --- /dev/null +++ b/packages/hooks/package.json @@ -0,0 +1,27 @@ +{ + "name": "@plane/hooks", + "version": "0.24.0", + "description": "React hooks that are shared across multiple apps internally", + "private": true, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist/**" + ], + "scripts": { + "build": "tsup ./src/index.ts --format esm,cjs --dts --external react --minify", + "lint": "eslint . --ext .ts,.tsx", + "lint:errors": "eslint . --ext .ts,.tsx --quiet" + }, + "dependencies": { + "react": "^18.3.1" + }, + "devDependencies": { + "@plane/eslint-config": "*", + "@types/node": "^22.5.4", + "@types/react": "^18.3.11", + "tsup": "^7.2.0", + "typescript": "^5.3.3" + } +} diff --git a/packages/helpers/hooks/index.ts b/packages/hooks/src/index.ts similarity index 100% rename from packages/helpers/hooks/index.ts rename to packages/hooks/src/index.ts diff --git a/packages/helpers/hooks/use-local-storage.tsx b/packages/hooks/src/use-local-storage.tsx similarity index 100% rename from packages/helpers/hooks/use-local-storage.tsx rename to packages/hooks/src/use-local-storage.tsx diff --git a/packages/helpers/hooks/use-outside-click-detector.tsx b/packages/hooks/src/use-outside-click-detector.tsx similarity index 100% rename from packages/helpers/hooks/use-outside-click-detector.tsx rename to packages/hooks/src/use-outside-click-detector.tsx diff --git a/packages/helpers/tsconfig.json b/packages/hooks/tsconfig.json similarity index 88% rename from packages/helpers/tsconfig.json rename to packages/hooks/tsconfig.json index f9715d3d8b..e8af9092ad 100644 --- a/packages/helpers/tsconfig.json +++ b/packages/hooks/tsconfig.json @@ -4,6 +4,6 @@ "jsx": "react", "lib": ["esnext", "dom"] }, - "include": ["."], + "include": ["./src"], "exclude": ["dist", "build", "node_modules"] } diff --git a/packages/ui/package.json b/packages/ui/package.json index 27189f606d..e4ebc0fe40 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -18,7 +18,8 @@ "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", "postcss": "postcss styles/globals.css -o styles/output.css --watch", - "lint": "eslint src --ext .ts,.tsx" + "lint": "eslint src --ext .ts,.tsx", + "lint:errors": "eslint src --ext .ts,.tsx --quiet" }, "peerDependencies": { "react": "^18.3.1", @@ -31,7 +32,8 @@ "@blueprintjs/popover2": "^1.13.3", "@headlessui/react": "^1.7.3", "@popperjs/core": "^2.11.8", - "@plane/helpers": "*", + "@plane/hooks": "*", + "@plane/utils": "*", "clsx": "^2.0.0", "emoji-picker-react": "^4.5.16", "lodash": "^4.17.21", diff --git a/packages/ui/src/dropdown/multi-select.tsx b/packages/ui/src/dropdown/multi-select.tsx index 6b50183702..25f22c6be4 100644 --- a/packages/ui/src/dropdown/multi-select.tsx +++ b/packages/ui/src/dropdown/multi-select.tsx @@ -5,7 +5,7 @@ import { Combobox } from "@headlessui/react"; // popper-js import { usePopper } from "react-popper"; // plane helpers -import { useOutsideClickDetector } from "@plane/helpers"; +import { useOutsideClickDetector } from "@plane/hooks"; // components import { DropdownButton } from "./common"; import { DropdownOptions } from "./common/options"; diff --git a/packages/ui/src/dropdown/single-select.tsx b/packages/ui/src/dropdown/single-select.tsx index 1c3b05f5b6..123c9e6982 100644 --- a/packages/ui/src/dropdown/single-select.tsx +++ b/packages/ui/src/dropdown/single-select.tsx @@ -5,7 +5,7 @@ import { Combobox } from "@headlessui/react"; // popper-js import { usePopper } from "react-popper"; // plane helpers -import { useOutsideClickDetector } from "@plane/helpers"; +import { useOutsideClickDetector } from "@plane/hooks"; // components import { DropdownButton } from "./common"; import { DropdownOptions } from "./common/options"; diff --git a/packages/ui/src/dropdowns/context-menu/root.tsx b/packages/ui/src/dropdowns/context-menu/root.tsx index 03fe0cf7bc..f251696d21 100644 --- a/packages/ui/src/dropdowns/context-menu/root.tsx +++ b/packages/ui/src/dropdowns/context-menu/root.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useRef, useState } from "react"; import ReactDOM from "react-dom"; // plane helpers -import { useOutsideClickDetector } from "@plane/helpers"; +import { useOutsideClickDetector } from "@plane/hooks"; // components import { ContextMenuItem } from "./item"; // helpers diff --git a/packages/ui/src/dropdowns/custom-menu.tsx b/packages/ui/src/dropdowns/custom-menu.tsx index e74fa59490..39f01d1ed2 100644 --- a/packages/ui/src/dropdowns/custom-menu.tsx +++ b/packages/ui/src/dropdowns/custom-menu.tsx @@ -4,7 +4,7 @@ import { Menu } from "@headlessui/react"; import { usePopper } from "react-popper"; import { ChevronDown, MoreHorizontal } from "lucide-react"; // plane helpers -import { useOutsideClickDetector } from "@plane/helpers"; +import { useOutsideClickDetector } from "@plane/hooks"; // hooks import { useDropdownKeyDown } from "../hooks/use-dropdown-key-down"; // helpers diff --git a/packages/ui/src/dropdowns/custom-search-select.tsx b/packages/ui/src/dropdowns/custom-search-select.tsx index 7842f1531d..4302c12fdc 100644 --- a/packages/ui/src/dropdowns/custom-search-select.tsx +++ b/packages/ui/src/dropdowns/custom-search-select.tsx @@ -4,7 +4,7 @@ import { Combobox } from "@headlessui/react"; import { Check, ChevronDown, Info, Search } from "lucide-react"; import { createPortal } from "react-dom"; // plane helpers -import { useOutsideClickDetector } from "@plane/helpers"; +import { useOutsideClickDetector } from "@plane/hooks"; // hooks import { useDropdownKeyDown } from "../hooks/use-dropdown-key-down"; // helpers @@ -97,10 +97,11 @@ export const CustomSearchSelect = (props: ICustomSearchSelectProps) => {