feat: persist feature research and versioned alpha assessments
This commit is contained in:
@@ -39,6 +39,7 @@ import { AlphaDetail } from "../components/AlphaDetail";
|
||||
import { AlphaSyncDialog } from "../components/AlphaSyncDialog";
|
||||
import type { PageContext, AlphaUIAction as UIAction } from "../ai/types";
|
||||
import type { UIAction as WorkspaceAction } from "../ai/types";
|
||||
import { SavedViews } from "../research/SavedViews";
|
||||
import { sourceLabel } from "../research/SourceDetails";
|
||||
|
||||
const metricLabels = {
|
||||
@@ -556,6 +557,45 @@ export function AlphaPage({
|
||||
{ itemKey: "SUBMITTED", tab: "已提交" },
|
||||
]}
|
||||
/>
|
||||
<SavedViews
|
||||
filters={{ ...filters, submission, sort, direction, limit: pageSize }}
|
||||
columns={visibleColumns}
|
||||
onRestore={(view) => {
|
||||
const {
|
||||
submission: savedSubmission,
|
||||
sort: savedSort,
|
||||
direction: savedDirection,
|
||||
limit,
|
||||
offset: _offset,
|
||||
...rest
|
||||
} = view.filters;
|
||||
const values = Object.fromEntries(
|
||||
Object.entries(rest)
|
||||
.filter(([, v]) => v !== null && v !== undefined)
|
||||
.map(([k, v]) => [k, String(v)]),
|
||||
);
|
||||
setFilters(values);
|
||||
setDraft(values);
|
||||
setPage(1);
|
||||
setSelected([]);
|
||||
if (
|
||||
savedSubmission === "SUBMITTED" ||
|
||||
savedSubmission === "UNSUBMITTED"
|
||||
)
|
||||
setSubmission(savedSubmission);
|
||||
setSort(String(savedSort || "date_created"));
|
||||
setDirection(String(savedDirection || "desc"));
|
||||
if (typeof limit === "number") setPageSize(limit);
|
||||
const next = [
|
||||
...new Set([
|
||||
"name",
|
||||
...view.columns.filter((c) => c in columnLabels),
|
||||
]),
|
||||
];
|
||||
setVisibleColumns(next);
|
||||
localStorage.setItem("alpha-columns", JSON.stringify(next));
|
||||
}}
|
||||
/>
|
||||
<form
|
||||
className="filter-panel"
|
||||
onSubmit={(e) => {
|
||||
|
||||
Reference in New Issue
Block a user