Добавить догрузку карточек автопрогонов
This commit is contained in:
parent
0506def909
commit
d29d885399
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -4,8 +4,8 @@
|
|||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>NDC AI Normalizer Playground</title>
|
||||
<script type="module" crossorigin src="/assets/index-9w9i5XPJ.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-DW_SonhM.css">
|
||||
<script type="module" crossorigin src="/assets/index-BdTHVNKv.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-D-Jp8Dx0.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
|
|
|||
|
|
@ -161,6 +161,8 @@ const LIVE_RUN_ID_PREFIX = "__live__:";
|
|||
|
||||
const AUTORUNS_UI_CONFIG_KEY = "ndc_autoruns_ui_config_v1";
|
||||
const AUTORUNS_SAVE_EVENT = "ndc-autoruns-save";
|
||||
const AUTOGEN_HISTORY_FETCH_LIMIT = 180;
|
||||
const AUTOGEN_HISTORY_CARD_BATCH_SIZE = 30;
|
||||
const ASSISTANT_STAGES = ["Анализ запроса", "Получение данных", "Подготовка ответа"];
|
||||
|
||||
function buildAssistantLiveFollowupMessage(inputValue: string, selectedChip: AssistantSelectionChip | null): string {
|
||||
|
|
@ -710,6 +712,7 @@ export function AutoRunsHistoryPanel({
|
|||
const [autogenPersonalities, setAutogenPersonalities] = useState<AutoGenPersonalityDefinition[]>(AUTOGEN_PERSONALITIES);
|
||||
const [autoGenSettings, setAutoGenSettings] = useState<AutoGenSettingsState>(DEFAULT_AUTOGEN_SETTINGS);
|
||||
const [autoGenHistory, setAutoGenHistory] = useState<AutoGenHistoryRecord[]>([]);
|
||||
const [autogenHistoryVisibleLimit, setAutogenHistoryVisibleLimit] = useState(AUTOGEN_HISTORY_CARD_BATCH_SIZE);
|
||||
const [selectedAutogenGenerationId, setSelectedAutogenGenerationId] = useState("");
|
||||
const [expandedSavedSessionGenerationId, setExpandedSavedSessionGenerationId] = useState("");
|
||||
const [editableGeneratedQuestions, setEditableGeneratedQuestions] = useState<string[]>([]);
|
||||
|
|
@ -806,6 +809,11 @@ export function AutoRunsHistoryPanel({
|
|||
() => autoGenHistory.filter((item) => item.mode === autoGenSettings.mode),
|
||||
[autoGenHistory, autoGenSettings.mode]
|
||||
);
|
||||
const renderedAutoGenHistory = useMemo(
|
||||
() => visibleAutoGenHistory.slice(0, autogenHistoryVisibleLimit),
|
||||
[autogenHistoryVisibleLimit, visibleAutoGenHistory]
|
||||
);
|
||||
const hiddenAutoGenHistoryCount = Math.max(0, visibleAutoGenHistory.length - renderedAutoGenHistory.length);
|
||||
const selectedAutogenGeneration = useMemo(
|
||||
() => visibleAutoGenHistory.find((item) => item.generation_id === selectedAutogenGenerationId) ?? visibleAutoGenHistory[0] ?? null,
|
||||
[selectedAutogenGenerationId, visibleAutoGenHistory]
|
||||
|
|
@ -1291,8 +1299,9 @@ export function AutoRunsHistoryPanel({
|
|||
const loadAutoGenHistory = useCallback(async () => {
|
||||
setAutogenHistoryBusy(true);
|
||||
try {
|
||||
const payload = await apiClient.loadAutoRunAutogenHistory({ limit: 180 });
|
||||
const payload = await apiClient.loadAutoRunAutogenHistory({ limit: AUTOGEN_HISTORY_FETCH_LIMIT });
|
||||
setAutoGenHistory(payload.items);
|
||||
setAutogenHistoryVisibleLimit(AUTOGEN_HISTORY_CARD_BATCH_SIZE);
|
||||
} catch (error) {
|
||||
log(`Autogen history load error: ${error instanceof Error ? error.message : String(error)}`);
|
||||
} finally {
|
||||
|
|
@ -2310,6 +2319,17 @@ export function AutoRunsHistoryPanel({
|
|||
});
|
||||
}, [visibleAutoGenHistory]);
|
||||
|
||||
useEffect(() => {
|
||||
setAutogenHistoryVisibleLimit(AUTOGEN_HISTORY_CARD_BATCH_SIZE);
|
||||
}, [autoGenSettings.mode]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!selectedAutogenGenerationId) return;
|
||||
const selectedIndex = visibleAutoGenHistory.findIndex((item) => item.generation_id === selectedAutogenGenerationId);
|
||||
if (selectedIndex < 0) return;
|
||||
setAutogenHistoryVisibleLimit((prev) => Math.max(prev, Math.min(visibleAutoGenHistory.length, selectedIndex + 1)));
|
||||
}, [selectedAutogenGenerationId, visibleAutoGenHistory]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!selectedAutogenGeneration) {
|
||||
setEditableGeneratedQuestions([]);
|
||||
|
|
@ -3094,7 +3114,7 @@ export function AutoRunsHistoryPanel({
|
|||
{isSavedUserSessionsMode ? "Сохраненные пользовательские сессии пока пусты." : "История автогенераций пока пустая."}
|
||||
</p>
|
||||
) : null}
|
||||
{visibleAutoGenHistory.slice(0, 30).map((item) => {
|
||||
{renderedAutoGenHistory.map((item) => {
|
||||
const isRunningThisGeneration = autogenRunBusy && runningAutogenGenerationId === item.generation_id;
|
||||
const isAnotherGenerationRunning = autogenRunBusy && runningAutogenGenerationId !== item.generation_id;
|
||||
return (
|
||||
|
|
@ -3344,6 +3364,19 @@ export function AutoRunsHistoryPanel({
|
|||
</article>
|
||||
);
|
||||
})}
|
||||
{hiddenAutoGenHistoryCount > 0 ? (
|
||||
<button
|
||||
type="button"
|
||||
className="autoruns-autogen-load-more-btn"
|
||||
onClick={() =>
|
||||
setAutogenHistoryVisibleLimit((prev) =>
|
||||
Math.min(prev + AUTOGEN_HISTORY_CARD_BATCH_SIZE, visibleAutoGenHistory.length)
|
||||
)
|
||||
}
|
||||
>
|
||||
Показать еще {Math.min(AUTOGEN_HISTORY_CARD_BATCH_SIZE, hiddenAutoGenHistoryCount)} из {hiddenAutoGenHistoryCount}
|
||||
</button>
|
||||
) : null}
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
|
|
|
|||
|
|
@ -1522,6 +1522,21 @@ button:disabled {
|
|||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.autoruns-autogen-load-more-btn {
|
||||
border: 1px solid rgba(var(--rgb-active), 0.32);
|
||||
border-radius: 10px;
|
||||
background: rgba(var(--rgb-active), 0.1);
|
||||
color: rgb(var(--rgb-text-main));
|
||||
padding: 8px 10px;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.autoruns-autogen-load-more-btn:hover {
|
||||
background: rgba(var(--rgb-active), 0.18);
|
||||
border-color: rgba(var(--rgb-active), 0.5);
|
||||
}
|
||||
|
||||
.autoruns-autogen-item {
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
|
|
|
|||
Loading…
Reference in New Issue