Files
multica/packages/core/issues/stores/index.ts
Jiayuan Zhang 4d74db89cb feat(issues): richer sub-issue rows in issue detail (MUL-5098) (#5721)
* feat(issues): richer sub-issue rows in issue detail (MUL-5098)

The sub-issues panel showed only status, identifier, title and assignee —
priority, due dates, labels, live agent activity and nested breakdowns
were invisible without opening each child.

- SubIssueRow now shows priority (checkbox-slot swap like list rows),
  the agent-activity indicator, label chips (+n overflow), the child's
  own done/total progress ring, and an inline-editable due date with
  overdue emphasis (muted when the child is done/cancelled)
- Right-click opens the shared issue actions menu via a section-level
  IssueContextMenuProvider — parity with list/board surfaces
- ListChildIssues + ListChildrenByParents now bulk-load labels
  (same labelsByIssue pattern as the other list endpoints)
- patchIssueLabels patches per-parent children caches;
  invalidateIssueLabelDerivatives refetches the Map-shaped batched
  children caches so label changes stay live everywhere

Co-authored-by: multica-agent <github@multica.ai>

* feat(issues): customizable property display for sub-issue rows (MUL-5098)

The enriched sub-issue rows were a fixed field set — no way to trim
them or surface workspace custom properties.

- New user-level persisted preference (useSubIssueDisplayStore):
  built-in field toggles (priority / labels / sub-issue progress /
  due date / assignee) + opted-in custom property ids. Defaults match
  the previous fixed layout, so existing users see no change.
- SubIssueDisplayPopover on the section header — same switch-row
  interaction as the main views' Display panel, reusing its card_*
  locale keys (no new translations needed).
- Rows render opted-in custom property chips (PropertyIcon +
  CustomPropertyValueDisplay, list-row parity) only when the child
  carries a value; ids resolve against live non-archived definitions,
  so foreign-workspace or archived ids are inert.

Co-authored-by: multica-agent <github@multica.ai>

* fix(issues): reconcile sub-issue cache updates

Co-authored-by: multica-agent <github@multica.ai>

---------

Co-authored-by: Lambda <lambda@multica.ai>
Co-authored-by: multica-agent <github@multica.ai>
2026-07-22 22:43:34 +08:00

73 lines
2.0 KiB
TypeScript

export { useIssueSelectionStore } from "./selection-store";
export {
useCreateModeStore,
openCreateIssueWithPreference,
type CreateMode,
} from "./create-mode-store";
export { useIssueDraftStore } from "./draft-store";
export {
useRecentIssuesStore,
selectRecentIssues,
type RecentIssueEntry,
} from "./recent-issues-store";
export {
ViewStoreProvider,
useViewStore,
useViewStoreApi,
} from "./view-store-context";
export { useIssuesScopeStore, type IssuesScope } from "./issues-scope-store";
export { useCommentCollapseStore } from "./comment-collapse-store";
export {
useResolvedExpandStore,
selectExpandedResolved,
} from "./resolved-expand-store";
export { useCommentComposerStore } from "./comment-composer-store";
export { useIssueLinkStore } from "./issue-link-store";
export { useCommentDraftStore, type CommentDraftKey } from "./comment-draft-store";
export {
myIssuesViewStore,
type MyIssuesViewState,
type MyIssuesScope,
} from "./my-issues-view-store";
export {
actorIssuesViewStore,
type ActorIssuesViewState,
type ActorIssuesScope,
} from "./actor-issues-view-store";
export {
useIssueViewStore,
createIssueViewStore,
viewStoreSlice,
viewStorePersistOptions,
useClearFiltersOnWorkspaceChange,
SORT_OPTIONS,
CARD_PROPERTY_OPTIONS,
TABLE_SYSTEM_COLUMNS,
DEFAULT_TABLE_COLUMNS,
type ViewMode,
type SortField,
type SortDirection,
type CardProperties,
type ActorFilterValue,
type IssueViewState,
type TableSystemColumnKey,
type TableColumnKey,
type TableColumnConfig,
type TableGrouping,
type TableCalculation,
} from "./view-store";
export {
ISSUE_SURFACE_VIEW_STORAGE_KEY,
getIssueSurfaceViewStore,
clearIssueSurfaceViewState,
pruneIssueSurfaceViewStates,
getIssueSurfaceViewStateRegistrySnapshot,
} from "./surface-view-store";
export {
useSubIssueDisplayStore,
SUB_ISSUE_ROW_PROPERTY_KEYS,
DEFAULT_SUB_ISSUE_ROW_PROPERTIES,
type SubIssueRowProperties,
type SubIssueRowPropertyKey,
} from "./sub-issue-display-store";