Skip to content

Commit 84d9591

Browse files
authored
feat: create shared directory and relocate cross-cutting components (#1397)
Move 10 cross-cutting UI components from frontend/src/components/shared/ to frontend/src/shared/, establishing a clear separation between reusable domain-agnostic utilities and feature-specific components. Components moved: audit-trail, breadcrumbs, data-table, detail-skeleton, direction-badge, entity-link, handler-reference, money-display, status-badge, time-display (and their test files). Feature-specific components (cel-editor, starlark-editor, saga-timeline, quality-ladder-badge, create-valuation-feature-dialog) remain in components/shared/ for task 3 treatment. Update all import paths across the codebase to use @/shared/* alias. Add @/shared/index.ts barrel export for the moved components. Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
1 parent 5471a87 commit 84d9591

62 files changed

Lines changed: 132 additions & 130 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,7 @@
1-
export { TimeDisplay } from './time-display';
2-
export type { TimeDisplayProps } from './time-display';
3-
4-
export { AuditTrail, AuditTrailSkeleton, JsonDiffViewer } from './audit-trail';
5-
export type { AuditTrailProps, AuditEntry, AuditEntriesResponse, AuditOperation } from './audit-trail';
6-
7-
export { HandlerReference } from './handler-reference';
8-
export type { HandlerReferenceProps, Handler, HandlerParameter, ServiceSchema, HandlerSchemaResponse } from './handler-reference';
9-
101
export { SagaTimeline } from './saga-timeline';
112
export type { SagaTimelineProps, SagaStep } from './saga-timeline';
3+
124
export { QualityLadderBadge } from './quality-ladder-badge';
13-
export { DirectionBadge } from './direction-badge';
5+
146
export { CreateValuationFeatureDialog } from './create-valuation-feature-dialog';
157
export type { CreateValuationFeatureDialogProps, AccountType } from './create-valuation-feature-dialog';
16-
17-
export { EntityLink } from './entity-link';
18-
export type { EntityLinkProps, EntityType } from './entity-link';
19-
20-
export { Breadcrumbs } from './breadcrumbs';
21-
export type { BreadcrumbsProps, BreadcrumbItem } from './breadcrumbs';
22-
23-
export { DetailSkeleton } from './detail-skeleton';
24-
export type { DetailSkeletonProps } from './detail-skeleton';

frontend/src/components/shared/saga-timeline.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CheckIcon } from 'lucide-react'
22
import { cn } from '@/lib/utils'
3-
import { TimeDisplay } from './time-display'
3+
import { TimeDisplay } from '@/shared/time-display'
44

55
const SAGA_STEPS = ['INITIATED', 'RESERVED', 'EXECUTING', 'COMPLETED'] as const
66

frontend/src/pages/accounts/[accountId].tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { useQuery } from '@tanstack/react-query'
44
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
55
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
66
import { Button } from '@/components/ui/button'
7-
import { StatusBadge } from '@/components/shared/status-badge'
8-
import { TimeDisplay } from '@/components/shared/time-display'
9-
import { MoneyDisplay } from '@/components/shared/money-display'
10-
import { AuditTrail, EntityLink, Breadcrumbs } from '@/components/shared'
7+
import { StatusBadge } from '@/shared/status-badge'
8+
import { TimeDisplay } from '@/shared/time-display'
9+
import { MoneyDisplay } from '@/shared/money-display'
10+
import { AuditTrail, EntityLink, Breadcrumbs } from '@/shared'
1111
import { ConnectError, Code } from '@connectrpc/connect'
1212
import { useApiClients } from '@/api/context'
1313
import { useTenantContext } from '@/contexts/tenant-context'

frontend/src/pages/accounts/index.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import * as React from 'react'
22
import { useNavigate } from 'react-router-dom'
33
import type { ColumnDef } from '@tanstack/react-table'
4-
import { DataTable } from '@/components/shared/data-table'
5-
import type { DataTableQueryParams, DataTableResult } from '@/components/shared/data-table'
6-
import { StatusBadge } from '@/components/shared/status-badge'
7-
import { TimeDisplay } from '@/components/shared/time-display'
4+
import { DataTable } from '@/shared/data-table'
5+
import type { DataTableQueryParams, DataTableResult } from '@/shared/data-table'
6+
import { StatusBadge } from '@/shared/status-badge'
7+
import { TimeDisplay } from '@/shared/time-display'
88
import { Button } from '@/components/ui/button'
99
import { useApiClients } from '@/api/context'
1010
import { useTenantContext } from '@/contexts/tenant-context'

frontend/src/pages/audit/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { useState, useCallback } from 'react'
22
import type { ColumnDef } from '@tanstack/react-table'
33
import { Button } from '@/components/ui/button'
44
import { Card } from '@/components/ui/card'
5-
import { DataTable, type DataTableQueryParams, type DataTableResult, type FilterConfig } from '@/components/shared/data-table'
6-
import { TimeDisplay } from '@/components/shared/time-display'
7-
import { JsonDiffViewer } from '@/components/shared/audit-trail'
5+
import { DataTable, type DataTableQueryParams, type DataTableResult, type FilterConfig } from '@/shared/data-table'
6+
import { TimeDisplay } from '@/shared/time-display'
7+
import { JsonDiffViewer } from '@/shared/audit-trail'
88
import { useAuthenticatedFetch } from '@/hooks/use-authenticated-fetch'
99
import { cn } from '@/lib/utils'
1010

frontend/src/pages/dashboard/activity-feed.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Link } from 'react-router-dom'
2-
import { StatusBadge } from '@/components/shared/status-badge'
3-
import { TimeDisplay } from '@/components/shared/time-display'
2+
import { StatusBadge } from '@/shared/status-badge'
3+
import { TimeDisplay } from '@/shared/time-display'
44
import { cn } from '@/lib/utils'
55

66
export interface ActivityItem {

frontend/src/pages/internal-accounts/[accountId].tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
44
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
55
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
66
import { Button } from '@/components/ui/button'
7-
import { StatusBadge } from '@/components/shared/status-badge'
8-
import { TimeDisplay } from '@/components/shared/time-display'
9-
import { MoneyDisplay } from '@/components/shared/money-display'
10-
import { AuditTrail, Breadcrumbs } from '@/components/shared'
7+
import { StatusBadge } from '@/shared/status-badge'
8+
import { TimeDisplay } from '@/shared/time-display'
9+
import { MoneyDisplay } from '@/shared/money-display'
10+
import { AuditTrail, Breadcrumbs } from '@/shared'
1111
import { ConnectError, Code } from '@connectrpc/connect'
1212
import { useApiClients } from '@/api/context'
1313
import { useTenantContext } from '@/contexts/tenant-context'

frontend/src/pages/internal-accounts/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import * as React from 'react'
22
import type { ColumnDef } from '@tanstack/react-table'
33
import { useNavigate } from 'react-router-dom'
4-
import { DataTable } from '@/components/shared/data-table'
5-
import { StatusBadge } from '@/components/shared/status-badge'
6-
import { TimeDisplay } from '@/components/shared'
4+
import { DataTable } from '@/shared/data-table'
5+
import { StatusBadge } from '@/shared/status-badge'
6+
import { TimeDisplay } from '@/shared'
77
import { useApiClients } from '@/api/context'
88
import { useTenantContext } from '@/contexts/tenant-context'
99
import { tenantKeys } from '@/lib/query-keys'

frontend/src/pages/ledger/balance-indicator.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { MoneyDisplay } from '@/components/shared/money-display'
1+
import { MoneyDisplay } from '@/shared/money-display'
22
import { cn } from '@/lib/utils'
33

44
interface BalanceIndicatorProps {

frontend/src/pages/ledger/booking-log-detail.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import {
99
import { useApiClients } from '@/api/context'
1010
import { useTenantContext } from '@/contexts/tenant-context'
1111
import { tenantKeys } from '@/lib/query-keys'
12-
import { StatusBadge } from '@/components/shared/status-badge'
13-
import { TimeDisplay, EntityLink, Breadcrumbs } from '@/components/shared'
14-
import { MoneyDisplay } from '@/components/shared/money-display'
12+
import { StatusBadge } from '@/shared/status-badge'
13+
import { TimeDisplay, EntityLink, Breadcrumbs } from '@/shared'
14+
import { MoneyDisplay } from '@/shared/money-display'
1515
import {
1616
Table,
1717
TableBody,

0 commit comments

Comments
 (0)