АРЧ АП11 - Архитектура после регресса: Архитектура: протянуть continuity-backed organization authority в session scope bootstrap и удержать phase12 wider replay зелёным
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import type { AddressNavigationState } from "../types/addressNavigation";
|
||||
import { resolveAssistantOrganizationAuthority } from "./assistantContinuityPolicy";
|
||||
|
||||
export interface AssistantSessionOrganizationScopeContext {
|
||||
knownOrganizations: string[];
|
||||
@@ -57,9 +58,21 @@ function resolveActiveOrganizationFromNavigationState(
|
||||
export function resolveSessionOrganizationScopeContextRuntime<ItemType = unknown>(
|
||||
input: ResolveSessionOrganizationScopeContextRuntimeInput<ItemType>
|
||||
): AssistantSessionOrganizationScopeContext {
|
||||
const continuityAuthority = resolveAssistantOrganizationAuthority({
|
||||
sessionItems: Array.isArray(input.items) ? input.items : [],
|
||||
toNonEmptyString: input.normalizeOrganizationScopeValue,
|
||||
normalizeOrganizationScopeValue: input.normalizeOrganizationScopeValue
|
||||
});
|
||||
const continuityKnownOrganizations = Array.isArray(continuityAuthority.knownOrganizations)
|
||||
? continuityAuthority.knownOrganizations
|
||||
: [];
|
||||
const continuityActiveOrganization = input.normalizeOrganizationScopeValue(
|
||||
continuityAuthority.activeOrganization
|
||||
);
|
||||
const knownOrganizations = Array.from(
|
||||
new Map(
|
||||
[
|
||||
...continuityKnownOrganizations,
|
||||
...extractOrganizationsFromNavigationState(input.addressNavigationState, input.normalizeOrganizationScopeValue),
|
||||
...input.extractKnownOrganizationsFromHistory(input.items)
|
||||
].map((value) => [String(value).toLowerCase(), value])
|
||||
@@ -77,6 +90,7 @@ export function resolveSessionOrganizationScopeContextRuntime<ItemType = unknown
|
||||
const activeOrganization =
|
||||
selectedOrganization ??
|
||||
navigationActiveOrganization ??
|
||||
continuityActiveOrganization ??
|
||||
input.normalizeOrganizationScopeValue(lastActiveOrganization) ??
|
||||
(knownOrganizations.length === 1 ? knownOrganizations[0] : null);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user