Volver a la wiki

SearchInline — Componente de búsqueda híbrida del shell del Workspace

Ubicación

src/components/shell/SearchInline.tsx

Propósito

Caja de búsqueda global del shell del Workspace. Desde s72 opera en modo híbrido: puede hacer búsqueda fuzzy local (Fuse.js) o consultar al Oráculo de EL (POST /api/oraculo/ask) según el tipo de query detectado automáticamente.


API pública

Handle (SearchInlineHandle)

El componente usa forwardRef y expone un handle que permite que el shell enfoque la caja desde el exterior (e.g. atajo de teclado):

export interface SearchInlineHandle {
  focus: () => void;
}

Uso típico en el shell:

const searchRef = useRef<SearchInlineHandle>(null);
// …
<SearchInline ref={searchRef} />
// …
searchRef.current?.focus();

Props

No expone props propias (_props ignorado en esta versión). Toda la configuración es interna.


Estado interno relevante

StateTipoDescripción
qstringQuery actual del input
modeSearchMode'auto' | 'search' | 'oracle'
resultsSearchEntry[]Resultados Fuse
oracleAnswerOracleResponse | nullRespuesta del Oráculo
oracleLoadingbooleanRequest en vuelo
oracleErrorstring | nullMensaje de error
historystring[]Últimas queries (max 6, localStorage)

Comportamiento por modo

Ver detalle en [[feature—workspace—oraculo-el]].

Modo search (Fuse)

Modo oracle (Oráculo de EL)


Historial de búsqueda


Constantes clave

ConstanteValorDescripción
HISTORY_KEY'ws-search-history'Clave localStorage
MAX_HISTORY6Máx entradas historial
ORACLE_DEBOUNCE_MS450Debounce antes de llamar al Oráculo
ORACLE_MIN_CHARS8Mínimo caracteres para activar Oráculo

Clases CSS principales

Todas en src/styles/globals.css. Tokens de diseño referenciados: --overlay-3/4, --accent, --fg, --fg-dim, --text-sm/xs, --border-soft, --danger, --font-mono.

ClaseDescripción
.search-inline-wrapContenedor raíz
.search-inline-dropdownPanel desplegable
.search-inline-mode-toggleFila de chips Auto/Buscar/Preguntar
.search-inline-mode-chipChip individual; .active cuando está seleccionado
.search-inline-oracleSección de respuesta del Oráculo
.search-inline-oracle-answerContenedor del HTML renderizado de la respuesta
.search-inline-oracle-sourcesFila de chips de fuentes
.search-inline-oracle-chipChip de fuente; .linkable si tiene href
.search-inline-result-mainContenedor resultado Fuse

Véase también

Page aislada parcial: no existen todavía entity pages para NoteEditor, FuseSearch ni el endpoint /api/oraculo/ask — candidatos a crear cuando se documente Fase 2.

Subir