diff --git a/apps/web/src/app/app.ts b/apps/web/src/app/app.ts index be820e7..c6c093a 100644 --- a/apps/web/src/app/app.ts +++ b/apps/web/src/app/app.ts @@ -10,6 +10,7 @@ import { import { filter, map } from 'rxjs'; import { AuthFacade } from '@task-stream/web/identity/application'; import { UserMenuComponent } from '@task-stream/web/identity/presenters'; +import { PiIconButtonComponent } from '@pi/ui'; import { AppShellComponent } from '@task-stream/web/shared/ui'; import { CommandPalette, @@ -27,7 +28,24 @@ import { UserMenuComponent, NotificationsBell, CommandPalette, + PiIconButtonComponent, ], + styles: ` + /* The palette's button, still: same box, so nothing moves when it loads. */ + .ts-shell-search { + display: inline-flex; + gap: 0.375rem; + align-items: center; + border: 0; + background: none; + font: inherit; + cursor: pointer; + kbd { + font-size: 0.6875rem; + opacity: 0.7; + } + } + `, template: ` @if (auth.isAuthenticated()) { @@ -62,8 +80,30 @@ import { @if (auth.isAuthenticated()) { - - + + @defer (on idle; on interaction) { + + } @placeholder { + + } + @defer (on idle; on interaction) { + + } @placeholder { + + } } @else if (auth.settled() && !onLogin()) { diff --git a/docs/04-cliente-web.md b/docs/04-cliente-web.md index aaceefb..a0fbe53 100644 --- a/docs/04-cliente-web.md +++ b/docs/04-cliente-web.md @@ -122,8 +122,10 @@ Qué gana la página: | `ListFacade` | `ListStore` | ruta `list` | Todos los tickets del proyecto en filas: filtros (enviados a la API), cambios de estado, prioridad y persona en la fila, edición en bloque; se recarga tras cada cambio propio y con los de otros | | `IssueFacade` | `IssueStore` | ruta `issues/:issueKey` | Ticket, comentarios en vivo, historial y todas sus acciones | -En la raíz solo queda lo que usa la cabecera desde el arranque: la sesión (`AuthFacade`), mis proyectos para la paleta -de comandos (`ProjectsFacade`) y la campana (`InboxFacade`, `PushFacade`). Lo demás es de su página: +En la raíz solo queda lo que usa la cabecera: la sesión (`AuthFacade`), mis proyectos para la paleta de comandos +(`ProjectsFacade`) y la campana (`InboxFacade`, `PushFacade`). La paleta y la campana se cargan con `@defer (on idle; +on interaction)`: su código y sus consultas no están en el arranque, y mientras tanto la cabecera muestra una copia +quieta con la misma caja, así que nada se mueve al llegar. Lo demás es de su página: - Las de una página que se vuelve a visitar a menudo (portada, Explorar, el formulario de propuestas) van en los `providers` de su ruta (`provideHomeFacade()`, `provideMyHomeFacade()`, `provideMyViewsFacade()`, diff --git a/docs/TaskStream-Documentacion.docx b/docs/TaskStream-Documentacion.docx index 45cbdaf..0307808 100644 Binary files a/docs/TaskStream-Documentacion.docx and b/docs/TaskStream-Documentacion.docx differ diff --git a/docs/TaskStream-Documentacion.pdf b/docs/TaskStream-Documentacion.pdf index 9790788..2957300 100644 Binary files a/docs/TaskStream-Documentacion.pdf and b/docs/TaskStream-Documentacion.pdf differ