Keep the completed-task Recommendations destination available when no records exist. - Render a localized empty state without task-creation controls. - Preserve Recommendations selection until a task leaves the completed column. - Cover empty states and shared detail entry points with dashboard tests. - Document the behavior and add a patch changeset. Files changed: .changeset/fn-8848-recommendations-empty-state.md | 7 +++ docs/dashboard-guide.md | 2 +- .../dashboard/app/components/TaskDetailModal.tsx | 15 ++--- .../app/components/TaskRecommendationsTab.css | 5 ++ .../app/components/TaskRecommendationsTab.tsx | 5 +- .../TaskDetailModal.recommendations.test.tsx | 21 +++++++ .../__tests__/TaskDetailModal.summary-tab.test.tsx | 73 +++++++++++++++++++++- packages/i18n/locales/en/app.json | 1 + packages/i18n/locales/es/app.json | 1 + packages/i18n/locales/fr/app.json | 1 + packages/i18n/locales/ko/app.json | 1 + packages/i18n/locales/zh-CN/app.json | 1 + packages/i18n/locales/zh-TW/app.json | 1 + packages/i18n/src/resources.d.ts | 1 + 14 files changed, 125 insertions(+), 10 deletions(-) Fusion-Task-Id: FN-8848 Fusion-Task-Lineage: e200dfba-8113-4ede-a117-f94d221a8e7d Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
77 lines
1.4 KiB
CSS
77 lines
1.4 KiB
CSS
.task-recommendations {
|
|
display: grid;
|
|
gap: var(--space-md);
|
|
padding: var(--space-md);
|
|
}
|
|
|
|
.task-recommendations__item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--space-md);
|
|
padding: var(--space-md);
|
|
}
|
|
|
|
.task-recommendations__content {
|
|
min-width: 0;
|
|
}
|
|
|
|
.task-recommendations__empty {
|
|
color: var(--text-muted);
|
|
margin: 0;
|
|
}
|
|
|
|
.task-recommendations__heading {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-sm);
|
|
}
|
|
|
|
.task-recommendations__heading h3,
|
|
.task-recommendations__content p {
|
|
margin: 0;
|
|
}
|
|
|
|
.task-recommendations__content p {
|
|
color: var(--text-muted);
|
|
margin-top: var(--space-xs);
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
.task-recommendations__category,
|
|
.task-recommendations__created,
|
|
.task-recommendations__error {
|
|
color: var(--text-muted);
|
|
font-size: var(--font-size-sm);
|
|
}
|
|
|
|
.task-recommendations__category {
|
|
background: var(--surface-raised);
|
|
border-radius: var(--radius-pill);
|
|
padding: calc(var(--space-xs) / 2) var(--space-sm);
|
|
}
|
|
|
|
.task-recommendations__action {
|
|
display: grid;
|
|
gap: var(--space-xs);
|
|
justify-items: end;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.task-recommendations__error {
|
|
color: var(--color-error);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.task-recommendations__item {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.task-recommendations__action {
|
|
align-items: stretch;
|
|
justify-items: stretch;
|
|
}
|
|
}
|