Skip to content

feat(url-sync): make URL synchronization configurable#278

Closed
andymedinadev wants to merge 4 commits intomidudev:mainfrom
andymedinadev:feature/urlSync
Closed

feat(url-sync): make URL synchronization configurable#278
andymedinadev wants to merge 4 commits intomidudev:mainfrom
andymedinadev:feature/urlSync

Conversation

@andymedinadev
Copy link
Contributor

@andymedinadev andymedinadev commented Oct 14, 2025

Configuración para que la sincronización de la URL sea opcional

Este PR introduce una nueva configuración para poder activar o desactivar la sincronización del código en la URL, evitando que cada cambio en el editor genere una nueva entrada en el historial del navegador.

Con el comportamiento actual de codi.link, con cada tipeo se actualiza la URL para que compartir código sea sencillo.

Pero eso tiene la desventaja de que llena el historial de navegación con navegaciones dentro de codi.link solo por las actualizaciones del editor.

image

Personalmente, me resultaba tan molesto que terminé acostumbrándome a abrir codi.link en ventana de incógnito para evitarlo.

Entonces decidí desarrollar esta configuración para solucionar el problema y que sea de manera opcional para quienes quieran seguir viendo la URL actualizada en el momento.

es

🚀 Cambios principales

  • Se agrega un nuevo archivo url-sync.js que centraliza toda la lógica de sincronización de URL.
  • Nueva propiedad urlSync en DEFAULT_INITIAL_SETTINGS (por defecto: true).
  • Se agrega handleUrlSyncOnType para actualizar la URL con debounce cada vez que cambia el código.
  • Nueva función setUrlSync que:
    • Limpia la URL si urlSync está deshabilitado.
    • Codifica el estado actual si urlSync está habilitado y la URL está vacía.

Al cambiar como funciona la URL cuando se activa esta configuración, tuve que modificar las funcionalidades para copiar la URL pulsando un botón de la interfaz o con el comando Ctrl+Shift+C

  • Se unifica la funcionalidad de copiar URL bajo un nuevo evento COPY_CURRENT_CODE_URL, manejado desde events-controller.js.
  • Se reduce la duración de las notificaciones de 5 minutos a 3 segundos.
  • Se eliminan funciones duplicadas relacionadas a la codificación de URL dentro de main.js.
  • Se agrega un nuevo utilitario utils/url.js con funciones reutilizables (getCleanPath, getEncodedPath, getEncodedString).

🧠 Motivación

  • Este cambio mejora la experiencia de usuario, ya que evita la sobrecarga innecesaria del historial del navegador cuando se edita el código.
  • El usuario ahora puede decidir si quiere o no que el contenido del editor se sincronice automáticamente con la URL.

✅ Resultado

  • La sincronización de URL ahora es configurable.
  • No se llena más el historial con rutas codificadas.
  • La copia de la URL actual respeta el nuevo sistema de codificación.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant