* refactor: unlock changing port in UI
* Change server port (#464)
* Ability to save custom port
* Launch server on custom port & pass that port to electron
* Add serverPort validation
* Prevent changing port in docker
---------
Co-authored-by: Snehanshu Phukon <snehanshu@mamboemm.com>
---------
Co-authored-by: স্নেহাংশু ফুকন <hello@snehanshu.com>
Co-authored-by: Snehanshu Phukon <snehanshu@mamboemm.com>
* fix: bug with applying delays
* fix: show delay data only in production screens
* chore: cover delay with feature test
* refactor: simplify type assertion
* use zustand store in `ContextMenuContext`
* add `withDivider` prop to context menu `Option`
* add `isDisabled` prop to `Option`
* create `eventIdSwapping` store
* create swapping context menu options
* fix `key` in ContextMenu
* address `tanstack-eslint` errors
* create initial `requestEventSwap` event
* create initial `swapEvents` action
* use `swapEvents` in `EventBlock`
* move from `emitError` to `logAxiosError`
* remove extra curly brace from Copy ID
* add `clearEventId` func
* finalize context menu swapping logic
* write optimistic swapping logic
* remove unused import and type out handler in `rundownController`
* create `rundownSwapValidator`
* move index increase to `EventBlock`
* move swapping logic from `id` to `index`
* create `swapEvents` endpoint
* move `useEventIdSwapping` hook into its own file
* revert to using event `id`
* logic now uses indexes to swap events
* add `todo` to `swapEvents`
* revert index increment
* create `swapOntimeEvents` and export in `index.ts`
* use `swapOntimeEvents` in frontend & server
* update import path
* remove extra `setCached`
* refactor: extract utilities and types
* refactor: extract and simplify progress bar logic
* refactor: duration validation handles midnight
* fix: prevent stale event loader
* refactor: consider next event in timer invalidation
* refactor: reload changes on changed roll target
* refactor: timer load accounts for midnight
* fix: issues with midnight on roll
* refactor: prevent stale secondary event
* style: disable menu bar in run mode
* fix: external devices in dev mode
* fix: add missing elements to translations
* ux: improve translation strings
* refactor: improve typing
* style: blink on event change
* refactor: param options is object
---------
Co-authored-by: Hannes Rüger <hannesrueger@gmx.de>