@burdenoff/microfe-crewfoundry 2026.1030.1 → 2026.1030.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/crewfoundry/components/EmployeeSkillsPanel.d.ts +12 -0
- package/dist/crewfoundry/components/EmployeeSkillsPanel.d.ts.map +1 -0
- package/dist/crewfoundry/components/EmployeeSkillsPanel.js +168 -0
- package/dist/crewfoundry/components/EmployeeSkillsPanel.js.map +1 -0
- package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.js +124 -134
- package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.d.ts +22 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.js +158 -129
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HrEmployeeProfilePagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HrEmployeeProfilePagePage.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n PagePurpose,\n Spinner,\n} from '@burdenoff/fe-libs/ui';\nimport { useGlobalUi } from '@burdenoff/fe-libs/shared/providers/shell';\nimport {\n ArrowLeft,\n BadgeCheck,\n CalendarDays,\n FileText,\n Mail,\n MapPin,\n Phone,\n Plus,\n Trash2,\n} from 'lucide-react';\nimport { useNavigate, useSearchParams } from 'react-router';\nimport { useCrewFoundryStore, type Employee } from '../store/crewfoundryStore';\nimport { formatEnumLabel } from '../utils/formatEnumLabel';\nimport {\n AvatarStack,\n ProgressRing,\n SegmentedTabs,\n Timeline,\n type SegmentedTab,\n type TimelineItem,\n type TimelineTone,\n} from '../components/viz';\nimport { AttachDocumentDialog } from '../components/forms/AttachDocumentDialog';\nimport { ConfirmDialog } from '../components/forms/ConfirmDialog';\n\ntype ProfileTab = 'overview' | 'skills' | 'documents' | 'performance' | 'activity';\n\nconst PROFILE_TABS: SegmentedTab[] = [\n { id: 'overview', label: 'Overview' },\n { id: 'skills', label: 'Skills' },\n { id: 'documents', label: 'Documents' },\n { id: 'performance', label: 'Performance' },\n { id: 'activity', label: 'Activity' },\n];\n\nconst SALARY_BANDS: { min: number; max: number }[] = [\n { min: 0, max: 60_000 },\n { min: 60_000, max: 90_000 },\n { min: 90_000, max: 120_000 },\n { min: 120_000, max: 150_000 },\n { min: 150_000, max: 200_000 },\n { min: 200_000, max: Number.POSITIVE_INFINITY },\n];\n\nfunction salaryBand(salary: number): string {\n const index = SALARY_BANDS.findIndex((band) => salary >= band.min && salary < band.max);\n const safeIndex = index === -1 ? SALARY_BANDS.length - 1 : index;\n const band = SALARY_BANDS[safeIndex];\n const low = `$${Math.round(band.min / 1000)}k`;\n const high = band.max === Number.POSITIVE_INFINITY ? '+' : `–$${Math.round(band.max / 1000)}k`;\n return `Band ${safeIndex + 1} · ${low}${high}`;\n}\n\nfunction tenure(startDate: string): string {\n const start = new Date(startDate);\n if (Number.isNaN(start.getTime())) {\n return '—';\n }\n const now = new Date();\n let months = (now.getFullYear() - start.getFullYear()) * 12 + (now.getMonth() - start.getMonth());\n if (now.getDate() < start.getDate()) {\n months -= 1;\n }\n if (months < 0) {\n months = 0;\n }\n const years = Math.floor(months / 12);\n const remMonths = months % 12;\n const parts: string[] = [];\n if (years > 0) {\n parts.push(`${years} year${years === 1 ? '' : 's'}`);\n }\n parts.push(`${remMonths} month${remMonths === 1 ? '' : 's'}`);\n return parts.join(', ');\n}\n\nfunction performanceLabel(score: number): string {\n if (score >= 4.5) return 'Excellent';\n if (score >= 3.5) return 'Strong';\n if (score >= 2.5) return 'Meets expectations';\n return 'Needs improvement';\n}\n\nfunction statusBadgeVariant(status: Employee['status']): 'default' | 'secondary' | 'destructive' {\n if (status === 'active') return 'default';\n if (status === 'on_leave') return 'secondary';\n return 'destructive';\n}\n\nfunction ContactChip({ icon, children }: { icon: ReactNode; children: ReactNode }) {\n return (\n <span className=\"inline-flex items-center gap-1.5 rounded-full border border-border-subtle bg-bg-surface px-3 py-1 text-xs text-text-secondary\">\n <span className=\"text-text-muted\">{icon}</span>\n <span className=\"truncate\">{children}</span>\n </span>\n );\n}\n\nfunction DetailRow({ label, children }: { label: string; children: ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-4 py-2 text-sm\">\n <span className=\"text-text-secondary\">{label}</span>\n <span className=\"text-right font-medium text-text-primary\">{children}</span>\n </div>\n );\n}\n\ninterface ActivitySignal {\n ts: number;\n item: TimelineItem;\n}\n\nfunction buildActivity(\n employee: Employee,\n timeEntries: ReturnType<typeof useCrewFoundryStore.getState>['timeEntries'],\n leaveRequests: ReturnType<typeof useCrewFoundryStore.getState>['leaveRequests'],\n payrollRecords: ReturnType<typeof useCrewFoundryStore.getState>['payrollRecords'],\n projects: ReturnType<typeof useCrewFoundryStore.getState>['projects']\n): TimelineItem[] {\n const signals: ActivitySignal[] = [];\n const toTs = (value: string): number => {\n const parsed = new Date(value).getTime();\n return Number.isNaN(parsed) ? 0 : parsed;\n };\n\n for (const project of projects.filter((p) => p.managerId === employee.id)) {\n signals.push({\n ts: toTs(project.startDate),\n item: {\n id: `project-${project.id}`,\n title: `Leads project “${project.name}”`,\n meta: `${formatEnumLabel(project.status)} · ${project.progress}% complete`,\n time: project.startDate,\n tone: 'info',\n },\n });\n }\n\n for (const leave of leaveRequests.filter((l) => l.employeeId === employee.id)) {\n const tone: TimelineTone =\n leave.status === 'approved'\n ? 'success'\n : leave.status === 'rejected'\n ? 'danger'\n : leave.status === 'pending'\n ? 'warning'\n : 'muted';\n signals.push({\n ts: toTs(leave.startDate),\n item: {\n id: `leave-${leave.id}`,\n title: `${formatEnumLabel(leave.type)} leave — ${formatEnumLabel(leave.status)}`,\n meta: `${leave.startDate} → ${leave.endDate} · ${leave.days} day${leave.days === 1 ? '' : 's'}`,\n time: leave.startDate,\n tone,\n },\n });\n }\n\n for (const record of payrollRecords.filter((r) => r.employeeId === employee.id)) {\n signals.push({\n ts: toTs(record.payDate),\n item: {\n id: `payroll-${record.id}`,\n title: `Payroll · ${record.period}`,\n meta: `Net $${record.netPay.toLocaleString()} (${formatEnumLabel(record.status)})`,\n time: record.payDate,\n tone: record.status === 'paid' ? 'success' : 'muted',\n },\n });\n }\n\n for (const entry of timeEntries.filter((t) => t.employeeId === employee.id)) {\n signals.push({\n ts: toTs(entry.date),\n item: {\n id: `time-${entry.id}`,\n title: `Logged ${entry.totalHours}h on ${entry.project || 'work'}`,\n meta: formatEnumLabel(entry.status),\n time: entry.date,\n tone: 'accent',\n },\n });\n }\n\n return signals\n .sort((a, b) => b.ts - a.ts)\n .slice(0, 14)\n .map((signal) => signal.item);\n}\n\nexport function HrEmployeeProfilePagePage() {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const employees = useCrewFoundryStore((state) => state.employees);\n const timeEntries = useCrewFoundryStore((state) => state.timeEntries);\n const leaveRequests = useCrewFoundryStore((state) => state.leaveRequests);\n const payrollRecords = useCrewFoundryStore((state) => state.payrollRecords);\n const projects = useCrewFoundryStore((state) => state.projects);\n const initialized = useCrewFoundryStore((state) => state.initialized);\n const employeeDocuments = useCrewFoundryStore((state) => state.employeeDocuments);\n const fetchEmployeeDocuments = useCrewFoundryStore((state) => state.fetchEmployeeDocuments);\n const uploadEmployeeDocument = useCrewFoundryStore((state) => state.uploadEmployeeDocument);\n const detachEmployeeDocument = useCrewFoundryStore((state) => state.detachEmployeeDocument);\n const { showToast } = useGlobalUi();\n const [tab, setTab] = useState<ProfileTab>('overview');\n const [attachDialogOpen, setAttachDialogOpen] = useState(false);\n const [removeDocumentId, setRemoveDocumentId] = useState<string | null>(null);\n // A ref (not state) on purpose: this only gates a fetch side-effect and\n // must never itself trigger a re-render, which is exactly what a `useState`\n // setter called synchronously inside an effect would do.\n const documentsLoadedForRef = useRef<string | null>(null);\n\n const id = searchParams.get('id');\n const employee = employees.find((candidate) => candidate.id === id);\n\n // Lazy-load this employee's documents the first time the Documents tab is\n // opened (documents aren't part of the crewfoundryBootstrap firehose).\n useEffect(() => {\n if (tab === 'documents' && employee && documentsLoadedForRef.current !== employee.id) {\n documentsLoadedForRef.current = employee.id;\n fetchEmployeeDocuments(employee.id).catch((error: unknown) => {\n showToast(error instanceof Error ? error.message : 'Unable to load documents', 'error');\n });\n }\n }, [tab, employee, fetchEmployeeDocuments, showToast]);\n\n if (!initialized && !employee) {\n return (\n <div className=\"flex min-h-[60vh] items-center justify-center p-6\">\n <Spinner size=\"lg\" />\n </div>\n );\n }\n\n if (!employee) {\n return (\n <div className=\"space-y-4 p-6\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate('../hr/employees-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n Back to directory\n </Button>\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Employee not found\"\n description=\"This profile is no longer available or the link is out of date.\"\n />\n </div>\n );\n }\n\n const manager = employee.managerId\n ? employees.find((candidate) => candidate.id === employee.managerId)\n : undefined;\n const managerName = manager\n ? `${manager.firstName} ${manager.lastName}`\n : employee.managerId\n ? 'Assigned'\n : 'No manager';\n const fullName = `${employee.firstName} ${employee.lastName}`;\n const activity = buildActivity(employee, timeEntries, leaveRequests, payrollRecords, projects);\n\n return (\n <div className=\"space-y-6 p-6\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate('../hr/employees-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n Back to directory\n </Button>\n\n {/* Profile header */}\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam\">\n <CardContent className=\"p-6\">\n <div className=\"flex flex-col gap-5 sm:flex-row sm:items-start\">\n <AvatarStack\n people={[{ name: fullName, avatarUrl: employee.avatar }]}\n max={1}\n size={72}\n />\n <div className=\"flex-1 space-y-3\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{fullName}</GradientText>\n </h1>\n <Badge variant={statusBadgeVariant(employee.status)}>\n {formatEnumLabel(employee.status)}\n </Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">\n {employee.position} · {employee.department}\n </p>\n <div className=\"flex flex-wrap gap-2\">\n <ContactChip icon={<Mail className=\"h-3.5 w-3.5\" />}>{employee.email}</ContactChip>\n <ContactChip icon={<Phone className=\"h-3.5 w-3.5\" />}>{employee.phone}</ContactChip>\n <ContactChip icon={<MapPin className=\"h-3.5 w-3.5\" />}>\n {employee.location}\n </ContactChip>\n <ContactChip icon={<CalendarDays className=\"h-3.5 w-3.5\" />}>\n Joined {employee.startDate}\n </ContactChip>\n </div>\n </div>\n </div>\n </CardContent>\n </GlassCard>\n\n <PagePurpose>\n A single view of one team member — their role, tenure, performance, and recent activity — so\n managers and partners have the full context in one place.\n </PagePurpose>\n\n <SegmentedTabs\n tabs={PROFILE_TABS}\n value={tab}\n onChange={(next) => setTab(next as ProfileTab)}\n aria-label=\"Employee profile sections\"\n />\n\n {tab === 'overview' ? (\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Details</CardTitle>\n </CardHeader>\n <CardContent className=\"divide-y divide-border-subtle pt-0\">\n <DetailRow label=\"Manager\">\n <span className=\"inline-flex items-center gap-2\">\n {manager ? (\n <AvatarStack\n people={[{ name: managerName, avatarUrl: manager.avatar }]}\n max={1}\n size={24}\n />\n ) : null}\n {managerName}\n </span>\n </DetailRow>\n <DetailRow label=\"Employment type\">{formatEnumLabel(employee.type)}</DetailRow>\n <DetailRow label=\"Salary band\">{salaryBand(employee.salary)}</DetailRow>\n <DetailRow label=\"Tenure\">{tenure(employee.startDate)}</DetailRow>\n <DetailRow label=\"Employee ID\">\n <span className=\"break-all font-mono text-xs\">{employee.id}</span>\n </DetailRow>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Performance</CardTitle>\n </CardHeader>\n <CardContent className=\"flex items-center gap-6 pt-0\">\n <ProgressRing\n value={employee.performanceScore}\n max={5}\n label={employee.performanceScore.toFixed(1)}\n caption=\"/ 5\"\n />\n <div className=\"space-y-1\">\n <p className=\"text-lg font-semibold text-text-primary\">\n {performanceLabel(employee.performanceScore)}\n </p>\n <p className=\"text-sm text-text-secondary\">\n Latest review score of {employee.performanceScore.toFixed(1)} out of 5.\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n ) : null}\n\n {tab === 'skills' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Skills</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {employee.skills.length > 0 ? (\n // Real skill tags from the employee record. Rendered as chips (not\n // proficiency bars) because the backend stores tags, not levels —\n // inventing a proficiency % would fabricate data.\n <div className=\"flex flex-wrap gap-2\">\n {employee.skills.map((skill) => (\n <Badge key={skill} variant=\"secondary\" className=\"text-xs\">\n {skill}\n </Badge>\n ))}\n </div>\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No skills recorded\"\n description=\"This team member has no skills captured yet. Add skills from the employee directory to surface them here.\"\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'documents' ? (\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <CardTitle className=\"text-base\">Documents</CardTitle>\n <Button size=\"sm\" onClick={() => setAttachDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-3.5 w-3.5\" />\n Attach document\n </Button>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {employeeDocuments.length > 0 ? (\n <div className=\"space-y-2\">\n {employeeDocuments.map((doc) => (\n <div\n key={doc.id}\n className=\"flex items-center justify-between gap-3 rounded-input border border-border-subtle bg-bg-surface px-3 py-2.5\"\n >\n <div className=\"flex min-w-0 items-center gap-3\">\n <FileText className=\"h-4 w-4 shrink-0 text-text-muted\" />\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-text-primary\">\n {doc.title}\n </p>\n <p className=\"text-xs text-text-muted\">\n {doc.category ? `${doc.category} · ` : ''}\n Uploaded {doc.uploadedAt.slice(0, 10)}\n </p>\n </div>\n </div>\n <button\n type=\"button\"\n aria-label={`Remove document \"${doc.title}\"`}\n className=\"shrink-0 text-text-muted hover:text-status-error-fg\"\n onClick={() => setRemoveDocumentId(doc.id)}\n >\n <Trash2 className=\"h-4 w-4\" />\n </button>\n </div>\n ))}\n </div>\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No documents attached\"\n description=\"Offer letters, contracts, and compliance documents attached to this profile will appear here.\"\n action={\n <Button size=\"sm\" onClick={() => setAttachDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-3.5 w-3.5\" />\n Attach document\n </Button>\n }\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'performance' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Performance</CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-col items-center gap-6 pt-0 sm:flex-row sm:items-center\">\n <ProgressRing\n value={employee.performanceScore}\n max={5}\n size={160}\n label={employee.performanceScore.toFixed(1)}\n caption=\"/ 5\"\n />\n <div className=\"flex-1 space-y-2\">\n <Badge variant=\"secondary\" className=\"gap-1\">\n <BadgeCheck className=\"h-3.5 w-3.5\" />\n {performanceLabel(employee.performanceScore)}\n </Badge>\n <p className=\"text-sm text-text-secondary\">\n {fullName} holds a review score of {employee.performanceScore.toFixed(1)} out of 5.\n </p>\n {/* needs backend fields: goals-met %, peer feedback, manager feedback — only a single\n performanceScore is modelled today, so sub-metrics are intentionally omitted rather\n than invented. */}\n <p className=\"text-xs text-text-muted\">\n Goal, peer, and manager sub-scores will appear here once captured on the review\n record.\n </p>\n </div>\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'activity' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Recent activity</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {activity.length > 0 ? (\n <Timeline items={activity} />\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No activity yet\"\n description=\"Time logs, leave, payroll, and project assignments for this employee will show up here.\"\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n <AttachDocumentDialog\n open={attachDialogOpen}\n onOpenChange={setAttachDialogOpen}\n onUpload={({ file, title, category }) =>\n uploadEmployeeDocument({ employeeId: employee.id, file, title, category })\n }\n />\n\n <ConfirmDialog\n open={removeDocumentId !== null}\n onOpenChange={(open) => {\n if (!open) setRemoveDocumentId(null);\n }}\n title=\"Remove document?\"\n description=\"This unlinks the document from this employee's profile. The file itself stays in the workspace Files library.\"\n confirmLabel=\"Remove\"\n destructive\n onConfirm={async () => {\n if (removeDocumentId) {\n await detachEmployeeDocument(removeDocumentId);\n setRemoveDocumentId(null);\n }\n }}\n />\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HrEmployeeProfilePagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HrEmployeeProfilePagePage.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n PagePurpose,\n Spinner,\n} from '@burdenoff/fe-libs/ui';\nimport { useGlobalUi } from '@burdenoff/fe-libs/shared/providers/shell';\nimport {\n ArrowLeft,\n BadgeCheck,\n CalendarDays,\n FileText,\n Mail,\n MapPin,\n Phone,\n Plus,\n Trash2,\n} from 'lucide-react';\nimport { useNavigate, useSearchParams } from 'react-router';\nimport { useCrewFoundryStore, type Employee } from '../store/crewfoundryStore';\nimport { formatEnumLabel } from '../utils/formatEnumLabel';\nimport {\n AvatarStack,\n ProgressRing,\n SegmentedTabs,\n Timeline,\n type SegmentedTab,\n type TimelineItem,\n type TimelineTone,\n} from '../components/viz';\nimport { AttachDocumentDialog } from '../components/forms/AttachDocumentDialog';\nimport { ConfirmDialog } from '../components/forms/ConfirmDialog';\nimport { EmployeeSkillsPanel } from '../components/EmployeeSkillsPanel';\n\ntype ProfileTab = 'overview' | 'skills' | 'documents' | 'performance' | 'activity';\n\nconst PROFILE_TABS: SegmentedTab[] = [\n { id: 'overview', label: 'Overview' },\n { id: 'skills', label: 'Skills' },\n { id: 'documents', label: 'Documents' },\n { id: 'performance', label: 'Performance' },\n { id: 'activity', label: 'Activity' },\n];\n\nconst SALARY_BANDS: { min: number; max: number }[] = [\n { min: 0, max: 60_000 },\n { min: 60_000, max: 90_000 },\n { min: 90_000, max: 120_000 },\n { min: 120_000, max: 150_000 },\n { min: 150_000, max: 200_000 },\n { min: 200_000, max: Number.POSITIVE_INFINITY },\n];\n\nfunction salaryBand(salary: number): string {\n const index = SALARY_BANDS.findIndex((band) => salary >= band.min && salary < band.max);\n const safeIndex = index === -1 ? SALARY_BANDS.length - 1 : index;\n const band = SALARY_BANDS[safeIndex];\n const low = `$${Math.round(band.min / 1000)}k`;\n const high = band.max === Number.POSITIVE_INFINITY ? '+' : `–$${Math.round(band.max / 1000)}k`;\n return `Band ${safeIndex + 1} · ${low}${high}`;\n}\n\nfunction tenure(startDate: string): string {\n const start = new Date(startDate);\n if (Number.isNaN(start.getTime())) {\n return '—';\n }\n const now = new Date();\n let months = (now.getFullYear() - start.getFullYear()) * 12 + (now.getMonth() - start.getMonth());\n if (now.getDate() < start.getDate()) {\n months -= 1;\n }\n if (months < 0) {\n months = 0;\n }\n const years = Math.floor(months / 12);\n const remMonths = months % 12;\n const parts: string[] = [];\n if (years > 0) {\n parts.push(`${years} year${years === 1 ? '' : 's'}`);\n }\n parts.push(`${remMonths} month${remMonths === 1 ? '' : 's'}`);\n return parts.join(', ');\n}\n\nfunction performanceLabel(score: number): string {\n if (score >= 4.5) return 'Excellent';\n if (score >= 3.5) return 'Strong';\n if (score >= 2.5) return 'Meets expectations';\n return 'Needs improvement';\n}\n\nfunction statusBadgeVariant(status: Employee['status']): 'default' | 'secondary' | 'destructive' {\n if (status === 'active') return 'default';\n if (status === 'on_leave') return 'secondary';\n return 'destructive';\n}\n\nfunction ContactChip({ icon, children }: { icon: ReactNode; children: ReactNode }) {\n return (\n <span className=\"inline-flex items-center gap-1.5 rounded-full border border-border-subtle bg-bg-surface px-3 py-1 text-xs text-text-secondary\">\n <span className=\"text-text-muted\">{icon}</span>\n <span className=\"truncate\">{children}</span>\n </span>\n );\n}\n\nfunction DetailRow({ label, children }: { label: string; children: ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-4 py-2 text-sm\">\n <span className=\"text-text-secondary\">{label}</span>\n <span className=\"text-right font-medium text-text-primary\">{children}</span>\n </div>\n );\n}\n\ninterface ActivitySignal {\n ts: number;\n item: TimelineItem;\n}\n\nfunction buildActivity(\n employee: Employee,\n timeEntries: ReturnType<typeof useCrewFoundryStore.getState>['timeEntries'],\n leaveRequests: ReturnType<typeof useCrewFoundryStore.getState>['leaveRequests'],\n payrollRecords: ReturnType<typeof useCrewFoundryStore.getState>['payrollRecords'],\n projects: ReturnType<typeof useCrewFoundryStore.getState>['projects']\n): TimelineItem[] {\n const signals: ActivitySignal[] = [];\n const toTs = (value: string): number => {\n const parsed = new Date(value).getTime();\n return Number.isNaN(parsed) ? 0 : parsed;\n };\n\n for (const project of projects.filter((p) => p.managerId === employee.id)) {\n signals.push({\n ts: toTs(project.startDate),\n item: {\n id: `project-${project.id}`,\n title: `Leads project “${project.name}”`,\n meta: `${formatEnumLabel(project.status)} · ${project.progress}% complete`,\n time: project.startDate,\n tone: 'info',\n },\n });\n }\n\n for (const leave of leaveRequests.filter((l) => l.employeeId === employee.id)) {\n const tone: TimelineTone =\n leave.status === 'approved'\n ? 'success'\n : leave.status === 'rejected'\n ? 'danger'\n : leave.status === 'pending'\n ? 'warning'\n : 'muted';\n signals.push({\n ts: toTs(leave.startDate),\n item: {\n id: `leave-${leave.id}`,\n title: `${formatEnumLabel(leave.type)} leave — ${formatEnumLabel(leave.status)}`,\n meta: `${leave.startDate} → ${leave.endDate} · ${leave.days} day${leave.days === 1 ? '' : 's'}`,\n time: leave.startDate,\n tone,\n },\n });\n }\n\n for (const record of payrollRecords.filter((r) => r.employeeId === employee.id)) {\n signals.push({\n ts: toTs(record.payDate),\n item: {\n id: `payroll-${record.id}`,\n title: `Payroll · ${record.period}`,\n meta: `Net $${record.netPay.toLocaleString()} (${formatEnumLabel(record.status)})`,\n time: record.payDate,\n tone: record.status === 'paid' ? 'success' : 'muted',\n },\n });\n }\n\n for (const entry of timeEntries.filter((t) => t.employeeId === employee.id)) {\n signals.push({\n ts: toTs(entry.date),\n item: {\n id: `time-${entry.id}`,\n title: `Logged ${entry.totalHours}h on ${entry.project || 'work'}`,\n meta: formatEnumLabel(entry.status),\n time: entry.date,\n tone: 'accent',\n },\n });\n }\n\n return signals\n .sort((a, b) => b.ts - a.ts)\n .slice(0, 14)\n .map((signal) => signal.item);\n}\n\nexport function HrEmployeeProfilePagePage() {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const employees = useCrewFoundryStore((state) => state.employees);\n const timeEntries = useCrewFoundryStore((state) => state.timeEntries);\n const leaveRequests = useCrewFoundryStore((state) => state.leaveRequests);\n const payrollRecords = useCrewFoundryStore((state) => state.payrollRecords);\n const projects = useCrewFoundryStore((state) => state.projects);\n const initialized = useCrewFoundryStore((state) => state.initialized);\n const employeeDocuments = useCrewFoundryStore((state) => state.employeeDocuments);\n const fetchEmployeeDocuments = useCrewFoundryStore((state) => state.fetchEmployeeDocuments);\n const uploadEmployeeDocument = useCrewFoundryStore((state) => state.uploadEmployeeDocument);\n const detachEmployeeDocument = useCrewFoundryStore((state) => state.detachEmployeeDocument);\n const { showToast } = useGlobalUi();\n const [tab, setTab] = useState<ProfileTab>('overview');\n const [attachDialogOpen, setAttachDialogOpen] = useState(false);\n const [removeDocumentId, setRemoveDocumentId] = useState<string | null>(null);\n // A ref (not state) on purpose: this only gates a fetch side-effect and\n // must never itself trigger a re-render, which is exactly what a `useState`\n // setter called synchronously inside an effect would do.\n const documentsLoadedForRef = useRef<string | null>(null);\n\n const id = searchParams.get('id');\n const employee = employees.find((candidate) => candidate.id === id);\n\n // Lazy-load this employee's documents the first time the Documents tab is\n // opened (documents aren't part of the crewfoundryBootstrap firehose).\n useEffect(() => {\n if (tab === 'documents' && employee && documentsLoadedForRef.current !== employee.id) {\n documentsLoadedForRef.current = employee.id;\n fetchEmployeeDocuments(employee.id).catch((error: unknown) => {\n showToast(error instanceof Error ? error.message : 'Unable to load documents', 'error');\n });\n }\n }, [tab, employee, fetchEmployeeDocuments, showToast]);\n\n if (!initialized && !employee) {\n return (\n <div className=\"flex min-h-[60vh] items-center justify-center p-6\">\n <Spinner size=\"lg\" />\n </div>\n );\n }\n\n if (!employee) {\n return (\n <div className=\"space-y-4 p-6\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate('../hr/employees-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n Back to directory\n </Button>\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Employee not found\"\n description=\"This profile is no longer available or the link is out of date.\"\n />\n </div>\n );\n }\n\n const manager = employee.managerId\n ? employees.find((candidate) => candidate.id === employee.managerId)\n : undefined;\n const managerName = manager\n ? `${manager.firstName} ${manager.lastName}`\n : employee.managerId\n ? 'Assigned'\n : 'No manager';\n const fullName = `${employee.firstName} ${employee.lastName}`;\n const activity = buildActivity(employee, timeEntries, leaveRequests, payrollRecords, projects);\n\n return (\n <div className=\"space-y-6 p-6\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate('../hr/employees-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n Back to directory\n </Button>\n\n {/* Profile header */}\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam\">\n <CardContent className=\"p-6\">\n <div className=\"flex flex-col gap-5 sm:flex-row sm:items-start\">\n <AvatarStack\n people={[{ name: fullName, avatarUrl: employee.avatar }]}\n max={1}\n size={72}\n />\n <div className=\"flex-1 space-y-3\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{fullName}</GradientText>\n </h1>\n <Badge variant={statusBadgeVariant(employee.status)}>\n {formatEnumLabel(employee.status)}\n </Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">\n {employee.position} · {employee.department}\n </p>\n <div className=\"flex flex-wrap gap-2\">\n <ContactChip icon={<Mail className=\"h-3.5 w-3.5\" />}>{employee.email}</ContactChip>\n <ContactChip icon={<Phone className=\"h-3.5 w-3.5\" />}>{employee.phone}</ContactChip>\n <ContactChip icon={<MapPin className=\"h-3.5 w-3.5\" />}>\n {employee.location}\n </ContactChip>\n <ContactChip icon={<CalendarDays className=\"h-3.5 w-3.5\" />}>\n Joined {employee.startDate}\n </ContactChip>\n </div>\n </div>\n </div>\n </CardContent>\n </GlassCard>\n\n <PagePurpose>\n A single view of one team member — their role, tenure, performance, and recent activity — so\n managers and partners have the full context in one place.\n </PagePurpose>\n\n <SegmentedTabs\n tabs={PROFILE_TABS}\n value={tab}\n onChange={(next) => setTab(next as ProfileTab)}\n aria-label=\"Employee profile sections\"\n />\n\n {tab === 'overview' ? (\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Details</CardTitle>\n </CardHeader>\n <CardContent className=\"divide-y divide-border-subtle pt-0\">\n <DetailRow label=\"Manager\">\n <span className=\"inline-flex items-center gap-2\">\n {manager ? (\n <AvatarStack\n people={[{ name: managerName, avatarUrl: manager.avatar }]}\n max={1}\n size={24}\n />\n ) : null}\n {managerName}\n </span>\n </DetailRow>\n <DetailRow label=\"Employment type\">{formatEnumLabel(employee.type)}</DetailRow>\n <DetailRow label=\"Salary band\">{salaryBand(employee.salary)}</DetailRow>\n <DetailRow label=\"Tenure\">{tenure(employee.startDate)}</DetailRow>\n <DetailRow label=\"Employee ID\">\n <span className=\"break-all font-mono text-xs\">{employee.id}</span>\n </DetailRow>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Performance</CardTitle>\n </CardHeader>\n <CardContent className=\"flex items-center gap-6 pt-0\">\n <ProgressRing\n value={employee.performanceScore}\n max={5}\n label={employee.performanceScore.toFixed(1)}\n caption=\"/ 5\"\n />\n <div className=\"space-y-1\">\n <p className=\"text-lg font-semibold text-text-primary\">\n {performanceLabel(employee.performanceScore)}\n </p>\n <p className=\"text-sm text-text-secondary\">\n Latest review score of {employee.performanceScore.toFixed(1)} out of 5.\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n ) : null}\n\n {tab === 'skills' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Skills</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {/* BOFF-3717: canonical skills with real proficiency bars. */}\n <EmployeeSkillsPanel employeeId={employee.id} />\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'documents' ? (\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <CardTitle className=\"text-base\">Documents</CardTitle>\n <Button size=\"sm\" onClick={() => setAttachDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-3.5 w-3.5\" />\n Attach document\n </Button>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {employeeDocuments.length > 0 ? (\n <div className=\"space-y-2\">\n {employeeDocuments.map((doc) => (\n <div\n key={doc.id}\n className=\"flex items-center justify-between gap-3 rounded-input border border-border-subtle bg-bg-surface px-3 py-2.5\"\n >\n <div className=\"flex min-w-0 items-center gap-3\">\n <FileText className=\"h-4 w-4 shrink-0 text-text-muted\" />\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-text-primary\">\n {doc.title}\n </p>\n <p className=\"text-xs text-text-muted\">\n {doc.category ? `${doc.category} · ` : ''}\n Uploaded {doc.uploadedAt.slice(0, 10)}\n </p>\n </div>\n </div>\n <button\n type=\"button\"\n aria-label={`Remove document \"${doc.title}\"`}\n className=\"shrink-0 text-text-muted hover:text-status-error-fg\"\n onClick={() => setRemoveDocumentId(doc.id)}\n >\n <Trash2 className=\"h-4 w-4\" />\n </button>\n </div>\n ))}\n </div>\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No documents attached\"\n description=\"Offer letters, contracts, and compliance documents attached to this profile will appear here.\"\n action={\n <Button size=\"sm\" onClick={() => setAttachDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-3.5 w-3.5\" />\n Attach document\n </Button>\n }\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'performance' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Performance</CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-col items-center gap-6 pt-0 sm:flex-row sm:items-center\">\n <ProgressRing\n value={employee.performanceScore}\n max={5}\n size={160}\n label={employee.performanceScore.toFixed(1)}\n caption=\"/ 5\"\n />\n <div className=\"flex-1 space-y-2\">\n <Badge variant=\"secondary\" className=\"gap-1\">\n <BadgeCheck className=\"h-3.5 w-3.5\" />\n {performanceLabel(employee.performanceScore)}\n </Badge>\n <p className=\"text-sm text-text-secondary\">\n {fullName} holds a review score of {employee.performanceScore.toFixed(1)} out of 5.\n </p>\n {/* needs backend fields: goals-met %, peer feedback, manager feedback — only a single\n performanceScore is modelled today, so sub-metrics are intentionally omitted rather\n than invented. */}\n <p className=\"text-xs text-text-muted\">\n Goal, peer, and manager sub-scores will appear here once captured on the review\n record.\n </p>\n </div>\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'activity' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Recent activity</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {activity.length > 0 ? (\n <Timeline items={activity} />\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No activity yet\"\n description=\"Time logs, leave, payroll, and project assignments for this employee will show up here.\"\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n <AttachDocumentDialog\n open={attachDialogOpen}\n onOpenChange={setAttachDialogOpen}\n onUpload={({ file, title, category }) =>\n uploadEmployeeDocument({ employeeId: employee.id, file, title, category })\n }\n />\n\n <ConfirmDialog\n open={removeDocumentId !== null}\n onOpenChange={(open) => {\n if (!open) setRemoveDocumentId(null);\n }}\n title=\"Remove document?\"\n description=\"This unlinks the document from this employee's profile. The file itself stays in the workspace Files library.\"\n confirmLabel=\"Remove\"\n destructive\n onConfirm={async () => {\n if (removeDocumentId) {\n await detachEmployeeDocument(removeDocumentId);\n setRemoveDocumentId(null);\n }\n }}\n />\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -206,6 +206,20 @@ export interface CrewEmployeeDocument {
|
|
|
206
206
|
uploadedBy: string;
|
|
207
207
|
uploadedAt: string;
|
|
208
208
|
}
|
|
209
|
+
export interface CrewSkillSummary {
|
|
210
|
+
id: string;
|
|
211
|
+
name: string;
|
|
212
|
+
category: string;
|
|
213
|
+
source: string;
|
|
214
|
+
}
|
|
215
|
+
export interface CrewEmployeeSkill {
|
|
216
|
+
id: string;
|
|
217
|
+
skillId: string;
|
|
218
|
+
proficiency: number | null;
|
|
219
|
+
verifiedFrom: string;
|
|
220
|
+
lastUsedAt: string | null;
|
|
221
|
+
skill: CrewSkillSummary;
|
|
222
|
+
}
|
|
209
223
|
export type OnboardingStage = 'offer' | 'paperwork' | 'it_setup' | 'training' | 'day_one';
|
|
210
224
|
export type OnboardingStatus = 'not_started' | 'in_progress' | 'completed' | 'cancelled';
|
|
211
225
|
export interface CrewOnboardingTask {
|
|
@@ -445,6 +459,7 @@ interface CrewFoundryState {
|
|
|
445
459
|
vendors: Vendor[];
|
|
446
460
|
clients: Client[];
|
|
447
461
|
employeeDocuments: CrewEmployeeDocument[];
|
|
462
|
+
employeeSkillProfiles: Record<string, CrewEmployeeSkill[]>;
|
|
448
463
|
onboardings: CrewOnboarding[];
|
|
449
464
|
onboardingsLoaded: boolean;
|
|
450
465
|
jobPostingMatches: Record<string, CrewCandidateMatch[]>;
|
|
@@ -534,6 +549,13 @@ interface CrewFoundryState {
|
|
|
534
549
|
category?: string;
|
|
535
550
|
}) => Promise<void>;
|
|
536
551
|
detachEmployeeDocument: (id: string) => Promise<void>;
|
|
552
|
+
fetchEmployeeSkillProfile: (employeeId: string) => Promise<void>;
|
|
553
|
+
attachEmployeeSkill: (params: {
|
|
554
|
+
employeeId: string;
|
|
555
|
+
skillName: string;
|
|
556
|
+
proficiency: number | null;
|
|
557
|
+
}) => Promise<void>;
|
|
558
|
+
detachEmployeeSkill: (employeeId: string, skillId: string) => Promise<void>;
|
|
537
559
|
fetchOnboardings: () => Promise<void>;
|
|
538
560
|
createOnboarding: (input: {
|
|
539
561
|
candidateId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crewfoundryStore.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/store/crewfoundryStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crewfoundryStore.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/store/crewfoundryStore.ts"],"names":[],"mappings":"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"}
|