Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

feat(ui): aplicar y persistir inmediatamente las personalizaciones del widget

Abierto
#97 0 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@egdev6 ya está trabajando en esto.

Desde el 12/10/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

status:approved type:feature
Pre-flight checks
  • I searched existing issues and found no duplicate.
  • I understand that this proposal requires product review before implementation.

El asistente completó la búsqueda de issues abiertas/cerradas y contrastó el inventario y antecedentes. El mantenedor confirmó la revisión previa y aprobó la publicación de quorb-ui-ux-v1. Esto no asigna trabajo ni inicia implementación.

Problem to solve

Opacidad, modo de un anillo, borde, posición, ocultación automática y Siempre encima no tienen efecto inmediato al cambiarlos en Ajustes. Main aún los trata como borrador hasta Guardar, mientras tamaño/color se autoaplican y el arrastre de la tira ya persiste borde/posición. El mantenedor confirmó que estas personalizaciones deben aplicarse inmediatamente.

Proposed solution

Alinear los seis controles enumerados con una experiencia de aplicación y persistencia automática, sin pulsar Guardar. Conservar los campos manuales y autostart; resolver la cola/errores/cierre para que ampliar autosave no pierda datos ni anuncie un guardado falso.

Affected area

Application behavior

Scope and non-goals
Alcance exacto

opacity, compact (modo de un anillo), dockEdge, dockOffset, autoHide, alwaysOnTop. Conservar la autoaplicación existente de tamaño/color y la posición por arrastre.

Criterios de aceptación
  • Cada control produce efecto en la tira/panel o ventana nativa correspondiente sin pulsar Guardar.
  • Cambios persisten al reabrir Ajustes/reiniciar; no dependen de conservar el borrador de React.
  • Modo compacto muestra el anillo previsto y actualiza tamaño/posición nativos sin oscilaciones ni operaciones redundantes evitables.
  • Opacidad afecta las superficies de tira y panel previstas; comprobar también controles internos a baja opacidad sin prometer causa visual no reproducida.
  • Borde y posición respetan geometría/monitor/escalado y mantienen coherencia entre Ajustes y arrastre.
  • AutoHide expande/colapsa y recupera la tira como corresponde; Siempre encima funciona en tira y panel, incluido el caso combinado con ocultación.
  • Escrituras de sliders acotadas y compuestas con el estado canónico más reciente; cambios rápidos/reversión o distintos controles no se pisan.
  • Cerrar Ajustes con debounce pendiente no pierde silenciosamente el último cambio. Definir y probar el mecanismo de flush/confirmación/recuperación.
  • Si falla persistencia o aplicación nativa, mostrar error recuperable y diferenciar lo aplicado de lo confirmado; no dejar un valor visible como éxito falso.
  • Las personalizaciones autoaplicadas no activan el Guardar manual, antes/durante/después del guardado.
  • No guardar accidentalmente otros borradores ni perder ediciones manuales realizadas durante operaciones en vuelo.
  • Conservar autostart y resultados parciales del guardado mixto; no transformar opciones WSL, proveedores, cuentas ni todos los Ajustes en autosave.
  • Tests deterministas de cola/races, cierre, errores, exclusión dirty y comportamiento de los seis campos; prueba desktop dev real de cada efecto/persistencia y regresión de posición/DPI pertinente.
Evidencia y orientación

Main inspeccionado: Settings mantiene estos campos en set(); Widget.tsx ya persiste posición por arrastre. El autosave actual limpia un timer pendiente al desmontar y mantiene borrador optimista ante fallo: riesgos que deben cubrirse, sin afirmar el fallo exacto del entorno del usuario después de Guardar.

Entradas: src/Settings.tsx, src/lib/settings-dirty.ts, src/lib/settings-save.ts, src/Widget.tsx, src/lib/dock.ts, src-tauri/src/config.rs y src-tauri/src/lib.rs. Decidir ruta de persistencia/aplicación: el patch actual no admite todos estos campos y un save completo tiene efectos laterales de atajos/cuentas/ventanas. No ampliar contratos a ciegas ni imponer una solución durante planificación.

Antecedentes y dependencias

Sin dependencia funcional externa. #9, #11 y #19 son regresiones a conservar, no issues a reabrir. Las opciones de #93 conservan explícitamente su borrador hasta Guardar. Coordinar con la retirada del bloque, adyacente en Settings; no escritores concurrentes sobre los mismos bloques.

Exclusiones

Sin autosave general, migración de autostart, cambio de visibilidad por cuenta, credenciales, comandos WSL ni rediseño general.

Coordinación, validación y límites

Parte de la propuesta aprobada quorb-ui-ux-v1, milestone «Coherencia visual y personalización». Trabajo por el flujo habitual; no se incorpora automáticamente a ODD ni altera prioridades de #45. Sin assignee ni nueva etiqueta status:approved. Antes de empezar revisar responsables, comentarios y PR, y coordinar las superficies compartidas.

Tests y documentación con cada unidad. Checks de implementación previstos, no ejecutados durante planificación: npm test, npm run typecheck, npm run build y cargo test en src-tauri cuando cambie comportamiento Rust; además prueba real de escritorio en modo desarrollo. No acreditar comportamiento Windows/WebView2 desde tests de lógica o fixtures de navegador. No se publica una versión ni se modifica el código al crear esta issue.

No editar directamente el DS vendorizado src/ds/egdev/* (ver su README); usar extensión de la app o coordinar el cambio upstream. Sin rediseño general, migración de cuentas, cambios de credenciales, firma, releases o nuevas versiones prometidas.

Alternatives considered

Mantener Guardar con mejor copy: no satisface la preferencia confirmada de aplicación inmediata. Añadir seis handlers live sin revisar persistencia/cierre/errores: puede extender pérdida silenciosa y efectos laterales. Hacer autosave de todo AppConfig: incluye borradores ajenos y contradice contratos manuales.

Lenguaje dominante
TypeScript
Estrellas
10
Forks
2
Merge medio
16 min
PR fusionados (30 d)
51

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de egdev6/quorb

Todos los issues de egdev6/quorb

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.