Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#97 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@egdev6 がすでに取り組んでいます。

2026年10月12日 から。

評価

この issue はまだ評価されていません。

説明

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.

主要言語
TypeScript
スター
10
フォーク
2
平均マージ
21分
マージ済み PR(30日)
52

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

egdev6/quorb のほかの issue

egdev6/quorb の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。