6 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| 03c6c3d479 |
feat: Add bulk import functionality for issues and run pnpm fix
All checks were successful
Deploy Plane Project Tracker / Deploy to cisystem (push) Successful in 35s
|
|||
|
|
6712389766
|
refactor: migrate web icons to @makeplane/propel (#9731)
* refactor: migrate web icons to @makeplane/propel Replace confirmed icon symbols across apps/web with their audited @makeplane/propel/icons targets. Unresolved symbols and the State, Priority and Brand icons stay on their existing imports. Lucide size props become explicit width/height, including the two relation icons and the inbox status icon that forward a size variable. Two aliased imports resolve to targets the file already imported, so the aliases are dropped rather than importing the same symbol twice. Widen the member dropdown chain and the AI menu from LucideIcon to ComponentType<SVGProps<SVGSVGElement>> so both Lucide and Propel icons satisfy them; both only ever render the icon with a className. CycleGroupIcon is deliberately not migrated: it dispatches a different glyph and color per cycle status, which CyclesOutline cannot express. apps/web already declared @makeplane/propel, so no dependency change was needed. * fix: address icon migration review on web Restore the six user-facing strings the identifier rename overwrote. The migration replaced every occurrence of a source symbol name, including ones inside string literals and JSX text, so the GitHub empty state read "StarOutline us on GitHub", the exporter column key, header and button label became "DownloadOutline", the project card action title became "SettingsOutline" and a tooltip became "PinOutline". Drop 122 strokeWidth props and 10 text-2 classes. Propel glyphs paint with fill="currentColor", so strokeWidth never changed weight, and text-2 was a bad conversion of stroke-2, which is a stroke width rather than a colour and has no meaning on a fill path. Use StarFilled for the two favorited sidebar stars. Lucide's Star with fill-yellow-500 was a solid star, and StarOutline is a ring path, so filling it does not reproduce that shape. |
||
|
|
fd68e7d919
|
refactor: migrate web @plane/propel Tooltip to @makeplane/propel (#9726)
* refactor: migrate web @plane/propel Tooltip to @makeplane/propel Move all 144 Tooltip call sites in apps/web from the in-repo @plane/propel/tooltip to the published @makeplane/propel/components/tooltip. Prop mapping applied on every site: - tooltipContent -> label (string) - tooltipHeading -> folded into label + layout="stacked" - position -> side/align (top/center omitted; it is the published default) - isMobile -> disabled (OR'd with any existing disabled) - renderByDefault -> dropped; the in-repo Tooltip declared but never used it - className -> dropped, or mapped to sideOffset/alignOffset (3 sites) layout is "single" for short bounded copy and "stacked" wherever the label interpolates unbounded data (names, titles, URLs, joined lists) — "single" is whitespace-nowrap, so long labels would overflow. Behavior change: tooltips now open after the published 600ms default instead of the in-repo 200ms. delay is deliberately not set per site. ReactNode content: - Editor toolbars map name + <kbd>shortcut</kbd> onto the published shortcut prop - <br/> and fragment copy folds into one wrapping stacked string - stickies/action-bar rendered a full <StickyNote> hover preview, not a tooltip; it moves to PreviewCard/PreviewCardTrigger/PreviewCardContent Published label is a string, so DropdownButtonProps.tooltipContent, date-range's customTooltipContent, and the two rich-filters components narrow from ReactNode to string. rich-filters/root.tsx guards filterConfig.tooltipContent, which stays ReactNode in @plane/types. Folded labels use ?? "" where the source expression is nullable so they cannot render the string "undefined" where the in-repo tooltip rendered nothing. Zero @plane/propel/tooltip references remain under apps/web. * fix: address review findings on the Tooltip migration Accessibility (CodeRabbit): Base UI wires no aria-describedby or aria-labelledby between the tooltip trigger and its popup — verified by rendering the published Tooltip and inspecting the DOM, the trigger comes out as `<button data-base-ui-tooltip-trigger>` with no aria at all and the popup has role="tooltip" but no id. So a `label` never reaches assistive tech, and the four icon-only triggers announced as bare "button". Add an explicit aria-label at each: extended-project-sidebar, layout-switcher, layout-selection, and access-field. Pre-existing gap (the in-repo tooltip sat on the same unwired Base UI trigger), fixed here since the PR touches these sites. AccessField now requires i18n_label and drops the optional pre-i18n `label`, so the computed label is non-empty by construction and serves as both the tooltip copy and the accessible name. Its only caller already passes i18n_label for every specifier, which also retires the TODO. Correctness: inbox issue-properties interpolated a nullable name into a template literal, so a duplicate work item with no name rendered the literal "undefined"; pass the name with ?? "" instead. CodeQL useless conditional: drop `|| ""` from stickyId in action-bar — both call sites already sit behind a guard proving recentStickyId truthy, and StickyNote treats "" and undefined identically. React Doctor prefer-module-scope-static-value: hoist badgeContent to module scope as BADGE_CONTENT; it holds only static strings. React Doctor js-combine-iterations: collapse the filter/map chains to a single pass. The two layout switchers skip inside map instead of pre-filtering; LabelSummary reduces project labels into the selected names once rather than filter -> map -> join. |
||
|
|
e093a22094
|
chore: remove posthog integration and analytics scaffold (#9634)
* chore: remove posthog integration and analytics scaffold
Removes the PostHog integration end to end, plus the inert autocapture
scaffold left behind by an earlier partial removal (
|
||
|
|
7564480cf7
|
fix: resolve React Doctor errors and restore its PR baseline (#9488)
* fix: resolve React Doctor errors and restore its PR baseline The React Doctor check on PR #9160 reported 266 issues across 130 files. Most of that is a reporting artifact: the workflow's `actions/checkout` step used the default shallow clone, so React Doctor had no merge base to diff against and fell back to listing every pre-existing issue in every changed file rather than only what the PR introduced. Add `fetch-depth: 0` so the comparison works. Also point the `push` trigger at `preview` — the repo's default branch — instead of `main`, which does not exist here, so the health-score trend never ran. Fix the 7 genuine errors it surfaced: - use-keypress: `callback` sat in the effect deps while every one of the 10 call sites passes an inline arrow, so the document listener was torn down and re-added on every render. Latch the callback in a ref and key the subscription on `key` alone. This clears `no-effect-with-fresh-deps` at create-root.tsx:102 and create-project-modal.tsx:64 at the source. - estimates/points/preview: the dblclick listener was added with no cleanup, so listeners accumulated on every toggle. Add the matching removeEventListener. - issues/header, calendar/issue-block, pages/editor/editor-body: guard `window` reads that run during render with `typeof window !== "undefined"`, matching the pattern already used elsewhere in web and admin. The editor case previously relied on the surrounding try/catch swallowing a ReferenceError on the server. Also clears the five pre-existing oxlint warnings in calendar/issue-block that the repo's `--deny-warnings` pre-commit gate blocks on once the file is touched: rename a shadowed `issue` parameter, and mark two presentational wrapper divs with `role="presentation"` — CustomMenu already wraps the first in a real <button>, and the second exists only to stop click propagation to the surrounding ControlLink. Verified: `turbo run check:types --filter=web` passes (11/11 tasks), `oxlint --deny-warnings` reports 0 warnings and 0 errors on the changed files. Claude-Session: https://claude.ai/code/session_01Hrr1nfNBiyC256drHM8BbT * fix: import EditorAIMenu directly instead of through the ai barrel The only issue React Doctor reports against this branch. `./ai` re-exports both menu.tsx and ask-pi-menu.tsx, so importing through it pulls the ask-pi menu into the page editor bundle for a symbol that lives in menu.tsx. Pre-existing on preview rather than introduced here, but it is a one-line fix in a file this branch already touches. Claude-Session: https://claude.ai/code/session_01Hrr1nfNBiyC256drHM8BbT * fix: address CodeRabbit review on the React Doctor branch - react-doctor.yml: set persist-credentials: false on checkout. The token otherwise stays in .git/config for the third-party millionco/react-doctor step that runs next. fetch-depth: 0 has already fetched every ref the merge-base diff needs, and the action authenticates to the API through its own credentials, so nothing depends on the persisted git credential. - calendar/issue-block: pass workspaceSlug?.toString() to handleRedirection. The param is typed string | undefined and line 89 of the same file already optional-chains it; this call site would have thrown on a missing route param. Pre-existing, but it is on a line this branch already touches. Declined the two SSR/hydration findings: apps/web sets ssr: false in react-router.config.ts and ships a client-only bundle, so there is no server render to diverge from. The typeof window guards satisfy the React Doctor rule but are defensive only. Claude-Session: https://claude.ai/code/session_01Hrr1nfNBiyC256drHM8BbT |
||
|
|
8ef78bf0c1
|
[GIT-248 | GIT-254] refactor: store and components consolidation to core (#9245)
* refactor: migrate constants (fetch-keys) from apps/web to @plane/constants * refactor: migrate constants (ai, calenda, gaant) from apps/web to @plane/constants * refactor: migrate constants (sidebar, favorites) from apps/web to @plane/constants * refactor: migrate constants (editor) from apps/web to @plane/constants * refactor: migrate constants (plans) from apps/web to @core/components * resolved lint errors * fix: resolve coderabbit comments * refactor: resolve coderabbit comments * refactor: migrate hooks (use-file-size) from web/app/ce to web/app/core * refactor: migrate hooks (use-notification-preview) from web/app/ce to web/app/core * refactor: migrate hooks (use-timeline-chart) from web/app/ce to web/app/core * refactor: migrate hooks (use-page, use-page-store) from web/app/ce to web/app/core * refactor: migrate hooks (app-rail, indexes) from web/app/ce to web/app/core * refactor: migrate hooks (use-page-flag) from web/app/ce to web/app/core * refactor: migrate hooks (use-editor-flagging) from web/app/ce to web/app/core * refactor: migrate hooks (use-filters-operator-configs) from web/app/ce to web/app/core * refactor: migrate hooks (use-additional-editor-mention) from web/app/ce to web/app/core * refactor: migrate hooks (use-additional-favorite-item-details) from web/app/ce to web/app/core * refactor: migrate hooks (use-extended-editor-extensions, use-pages-pane-extensions) from web/app/ce to web/app/core * refactor: migrate hooks (use-work-items-filters-config) from web/app/ce to web/app/core * refactor: migrate hooks (use-extended-editor-config) from web/app/ce to web/app/core * refactor: migrate hooks (use-bulk-operations) from web/app/ce to web/app/core * refactor: migrate hooks (use-debounced-duplicate-issues) from web/app/ce to web/app/core * refactor: migrate hooks (use-issue-properties) from web/app/ce to web/app/core * refactor: migrate hooks (use-workspace-issue-properties) from web/app/ce to web/app/core * refactor: delete hook (use-issue-embed) from web/app/ce * fix: coderabbit comments * fix: React doctor comments * fix: import structure for hooks * refactor: remove command palette & sidebar components and related files from web/app/ce * refactor: update analytics tab imports and add new analytics tab components * feat: add project, work item, and workspace level modals for enhanced user interaction * refactor: replace WorkspaceActiveCyclesRoot with WorkspaceActiveCyclesUpgrade and remove obsolete components * refactor: migrate app-rail HOC to core components and remove obsolete index file * refactor: remove unused automation components and simplify layout structure * refactor: update import paths for CommonProjectBreadcrumbs and add new breadcrumb components * refactor: update import path for WorkItemDetailRoot and add new work item detail component * refactor: remove obsolete comments index file and introduce CommentBlock component in core * refactor: update import paths for common components and introduce new ExtendedAppHeader, GlobalModals, and SubscriptionPill components * refactor: remove obsolete index file and add MaintenanceMessage and InboxSourcePill components * refactor: remove obsolete cycle components and introduce new cycle-related components in core * refac: moved de-dupe directory to core * refactor: add new desktop components and update import paths for sidebar functionality * refactor: remove obsolete index file and introduce new version number and product updates components in core * refactor: add EpicModal component and update import paths in issue layouts * refactor: add HomePageHeader and HomePeekOverviewsRoot components, update import paths in home and issues sections * refactor: remove obsolete home index file, update import paths for relation options in issue detail components, and introduce new activity helper functions * refactor: remove AdditionalFilterValueInput from legacy path and reintroduce it in core filter value input component * refactor: remove legacy workspace-notifications index file and introduce new notification components in core * refactor: remove legacy license components and update import paths for PaidPlanUpgradeModal * refactor: remove legacy navigation components and update import paths for navigation items in core * refactor: introduce onboarding tour components and update import paths for tour-related files * refactor: remove legacy theme switcher component and update import paths in profile settings * refactor: update import paths for workflow components and introduce new workflow-related files in core * refactor: remove legacy estimate components and introduce new estimate-related files in core * refactor: remove legacy gantt-chart components and introduce new core components for gantt-chart functionality * refactor: remove legacy helper components and introduce new access control and publish components in core * refactor: introduce billing components and update import paths for billing-related files in core * refactor: introduce new members components and update import paths for workspace members functionality * refactor: update import paths for workspace components and introduce new workspace-related files * refactor: remove deprecated components and clean up import paths across various modules * refactor: remove unused components and clean up import paths across various modules * refactor: remove unused sidebar components and update import paths in workspace notifications * refactor: introduce new estimate, billing, and notification card components while updating import paths across various modules * refactor: remove unused estimate and billing components, update import paths, and streamline workspace notification card structure * refactor: update import paths for project components and remove unused files in the projects module * refactor: remove unused power-k components and update import paths in the command palette module * refactor: remove unused issue components and update import paths across the issues module * refactor: remove unused mentions components and update import paths in the editor module * refactor: remove unused components and update import paths across the pages module * refactor: update type imports for issue properties in issue modal context * fix: oxfmt * fix: PR checks * [GIT-254] Refactor: Store consolidation to @core/store (#9271) * refactor: remove unused store files and update import paths across the application * refactor: remove unused store files and update import paths across the core module * refactor: remove unused issue filter and store files, and update import paths in the core module * refactor: update import paths for timeline store files and introduce new base timeline store * refactor: remove deprecated root store file and update import paths across the application * refactor: update import paths for store files and correct root store type references * refactor: standardize import comments and remove 'plane-web' artifacts across various components * fix: CodeRabbit comments * fix: format * refactor: update TypeScript configuration and improve sorting method in TabNavigationRoot component * refactor: replace toSorted with sort method for navigation item sorting in TabNavigationRoot component --------- Co-authored-by: Rahulcheryala <rahulcheryala2004@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> |
Renamed from apps/web/ce/components/issues/header.tsx (Browse further)