Commit Graph

69 Commits

Author SHA1 Message Date
Andrew Davis dc512181c1
Merge branch 'dev' into feat/macros 2025-04-09 23:08:26 +10:00
Adam Shiervani 1a30977085
Feat/Trickle ice (#336)
* feat(cloud): Use Websocket signaling in cloud mode

* refactor: Enhance WebRTC signaling and connection handling

* refactor: Improve WebRTC connection management and logging in KvmIdRoute

* refactor: Update PeerConnectionDisconnectedOverlay to use Card component for better UI structure

* refactor: Standardize metric naming and improve websocket logging

* refactor: Rename WebRTC signaling functions and update deployment script for debug version

* fix: Handle error when writing new ICE candidate to WebRTC signaling channel

* refactor: Rename signaling handler function for clarity

* refactor: Remove old http local http endpoint

* refactor: Improve metric help text and standardize comparison operator in KvmIdRoute

* chore(websocket): use MetricVec instead of Metric to store metrics

* fix conflicts

* fix: use wss when the page is served over https

* feat: Add app version header and update WebRTC signaling endpoint

* fix: Handle error when writing device metadata to WebRTC signaling channel

---------

Co-authored-by: Siyuan Miao <i@xswan.net>
2025-04-09 00:10:38 +02:00
Andrew Davis 40acb6e2e5
cleanup icons 2025-04-05 23:58:25 +10:00
Andrew Davis 6b6b86287e
cleanup combobox focus 2025-04-05 23:57:20 +10:00
Andrew Davis 95eb908fcf
revert info on field label 2025-04-05 23:57:05 +10:00
Andrew Davis 10dbdf783f
merge dev 2025-04-05 23:22:25 +10:00
Adam Shiervani 8268b20f32
refactor: Update WebRTC connection handling and overlays (#320)
* refactor: Update WebRTC connection handling and overlays

* fix: Update comments for WebRTC connection handling in KvmIdRoute

* chore: Clean up import statements in devices.$id.tsx
2025-04-03 19:32:14 +02:00
Andrew Davis 7d5cf918fc
cleanup delete buttons 2025-04-04 00:41:57 +10:00
Andrew Davis 5fcc1f4079
add confirm dialog component 2025-04-03 23:51:43 +10:00
Andrew Davis 8a056960bf
add useCallback optimizations 2025-04-03 23:29:02 +10:00
Andrew Davis 0651cb8256
use and add info to fieldlabel 2025-04-03 23:15:40 +10:00
Andrew Davis 54d011897d
cleanup macrobar 2025-04-03 18:18:21 +10:00
Andrew Davis 4438dbbe0c
remove sortable list and simplify 2025-04-03 17:49:29 +10:00
Andrew Davis 7b8725892d
split up macro routes 2025-04-03 16:01:22 +10:00
Andrew Davis 48d8523122
create sortable list component 2025-04-03 11:36:09 +10:00
Andrew Davis 0206d798a3
cleanup styles and macro list 2025-04-03 01:54:16 +10:00
Andrew Davis 5c3424e89f
remove macro description 2025-04-03 01:14:37 +10:00
Andrew Davis 223558a6a0
create generic combobox component 2025-04-03 00:59:38 +10:00
Andrew Davis 6406400884
extract display key mappings 2025-04-03 00:58:55 +10:00
Andrew Davis 669e4244a6
use existing components and CTA 2025-04-02 23:29:41 +10:00
Andrew Davis c65d222ee0
feat(ui): add className prop to Checkbox component to allow custom styling 2025-04-02 23:28:55 +10:00
Andrew Davis 2766f50dce
cleanup settings menu 2025-03-30 22:40:39 +10:00
Andrew Davis 452e7827c3
use notifications component and handle jsonrpc errors 2025-03-30 22:13:42 +10:00
Andrew Davis 2ba8e1981b
add ui keyboard macros settings and macro bar 2025-03-29 18:05:11 +10:00
Adam Shiervani a3580b5465
Improve error handling when `RTCPeerConnection` throws (#289)
* fix(WebRTC): improve error handling during peer connection creation and add connection error overlay

* refactor: update peer connection state handling and improve type definitions across components
2025-03-25 14:54:04 +01:00
Adam Shiervani 3b711db781
Apply and Upgrade Eslint (#288)
* Upgrade ESLINT and fix issues

* feat: add frontend linting job to GitHub Actions workflow

* Move UI linting to separate file

* More linting fixes

* Remove pull_request trigger from UI linting workflow

* Update UI linting workflow

* Rename frontend-lint workflow to ui-lint for clarity
2025-03-25 11:56:24 +01:00
Adam Shiervani 9d511d7f58
Autoplay permission handling (#285)
* feat(WebRTC): enhance connection management with connection failures after X attempts or a certain time

* refactor(WebRTC): simplify WebRTCVideo component and enhance connection error handling

* fix(WebRTC): extend connection timeout from 1 second to 60 seconds for improved error handling

* feat(VideoOverlay): add NoAutoplayPermissionsOverlay component and improve HDMIErrorOverlay content

* feat(VideoOverlay): update NoAutoplayPermissionsOverlay styling and improve user instructions

* Remove unused PlayIcon import to clean up code
2025-03-24 23:32:13 +01:00
Adam Shiervani 5d7d4db4aa
Improve connection error handling (#284)
* feat(WebRTC): enhance connection management with connection failures after X attempts or a certain time

* refactor(WebRTC): simplify WebRTCVideo component and enhance connection error handling

* fix(WebRTC): extend connection timeout from 1 second to 60 seconds for improved error handling
2025-03-24 23:31:23 +01:00
Adam Shiervani 204e6c7faf feat(UsbDeviceSetting): integrate remote virtual media state management and improve USB config handlingt 2025-03-24 12:32:12 +01:00
Adam Shiervani caf3922ecd
refactor(WebRTCVideo): improve mouse event handling and video playback logic (#282) 2025-03-24 12:07:31 +01:00
Adam Shiervani f198df816c
fix(Dialog): restore navigation after mount process completion (#274) 2025-03-19 18:18:51 +01:00
Adam Shiervani f30eb0355e
fix(Dialog): ensure navigation occurs after mount process completion (#273) 2025-03-19 18:12:49 +01:00
Adam Shiervani 8e2ed6059d
Refactor: remove USB configuration components and update settings structure (#271) 2025-03-19 15:57:53 +01:00
Aveline d52e7d04d1
feat: relative mouse (#246) 2025-03-19 11:47:15 +01:00
Adam Shiervani e66190df0b
feat: Add feature flag for scroll sensitivity settings (#245)
- Integrate feature flag for scroll sensitivity configuration
- Conditionally render scroll sensitivity settings based on app version
- Update useEffect to only fetch scroll sensitivity when feature flag is enabled
2025-03-12 14:55:44 +01:00
Antony Messerli a55774b0de
Update netboot.xyz logo to latest (#253)
Updates svg for the newest logo and replaces the older one
2025-03-12 14:55:14 +01:00
Siyuan Miao d1948adca8 refactor(usb): move usbconfig to a seperated package 2025-03-10 14:02:52 +01:00
Siyuan Miao c088534d34 feat(usb): dynamic usb devices config 2025-03-10 13:54:42 +01:00
Simon Smith 5c7accae0d
add confirm prompt to delete file (#243) 2025-03-10 10:56:57 +01:00
Adam Shiervani 536e823243
feat: Add scroll sensitivity configuration and improved wheel event handling (#242)
- Implement scroll sensitivity settings with low, default, and high modes
- Add RPC methods for getting and setting scroll sensitivity
- Enhance wheel event handling with device-specific sensitivity and clamping
- Create a new device settings store for managing scroll and trackpad parameters
- Update mouse settings route to include scroll sensitivity selection
2025-03-10 10:51:11 +01:00
Carl Downing 1ec87f043f
copyedits (#232)
* fix case

* fix typos

* fix css class names

---------

Co-authored-by: Carl Downing <carl@undivided.io>
2025-03-09 15:04:11 +01:00
Adam Shiervani 7f43ba869f
fix(ui): Improve terminal data channel handling for cross-browser compatibility (#210)
- Add support for different binary data types (ArrayBuffer and Blob)
- Implement FileReader for converting Blob data in Firefox
- Send initial terminal size on data channel open
2025-02-28 14:29:08 +01:00
Adam Shiervani b499482c5d
chore(deps): Update UI dependencies to latest versions (#209) 2025-02-28 13:57:17 +01:00
Adam Shiervani e4bb4f288c
feat(cloud): Add support for custom cloud app URL configuration (#207)
* feat(cloud): Add support for custom cloud app URL configuration

- Extend CloudState and Config to include CloudAppURL
- Update RPC methods to handle both API and app URLs
- Modify cloud adoption and settings routes to support custom app URLs
- Remove hardcoded cloud app URL environment file
- Simplify cloud URL configuration in UI

* fix(cloud): Improve cloud URL configuration and adoption flow

- Update error handling in cloud URL configuration RPC method
- Modify cloud adoption route to support dynamic cloud URLs
- Remove hardcoded default cloud URLs in device access settings
- Refactor cloud adoption click handler to be more flexible

* refactor(cloud): Simplify cloud URL configuration RPC method

- Update rpcSetCloudUrl to return only an error
- Remove unnecessary boolean return value
- Improve error handling consistency

* refactor(ui): Simplify cloud provider configuration and URL handling
2025-02-28 13:48:52 +01:00
Adam Shiervani 482c64ad02
feat(ui): Add feature flag system (#208) 2025-02-28 12:49:55 +01:00
Adam Shiervani 543ef2114e
fix(ui): Navigate to root on cloud device access settings disconnection (#205) 2025-02-27 17:24:15 +01:00
Adam Shiervani a4863f6999
refactor(ui): Improve device access settings with conditional rendering and loader data handling (#204) 2025-02-27 17:18:56 +01:00
Adam Shiervani d49a567a38
refactor(ui): Extract device UI path generation to standalone function (#203) 2025-02-27 17:08:13 +01:00
Adam Shiervani a3355bb81c fix(ui): Update device route navigation to root on modal close 2025-02-27 16:59:43 +01:00
Adam Shiervani 4052b3d225
Move settings to modals & better modal handling (#194)
* feat(ui): Add other session handling route and modal

* feat(ui): Add dedicated update route and refactor update dialog state management

* feat(ui): Add local authentication route

* refactor(ui): Remove LocalAuthPasswordDialog component and clean up related code

* refactor(ui): Remove OtherSessionConnectedModal component

* feat(ui): Add dedicated mount route and refactor mount media dialog

* refactor(ui): Simplify Escape key navigation in device route

* refactor(ui): Add TODO comments for future URL-based state migration

* refactor(ui): Migrate settings and update routes to dedicated routes

This commit introduces a comprehensive refactoring of the UI routing and state management:
- Removed sidebar-based settings view
- Replaced global modal state with URL-based routing
- Added dedicated routes for settings, including general, security, and update sections
- Simplified modal and sidebar interactions
- Improved animation and transition handling using motion library
- Removed deprecated components and simplified route structure

* fix(ui): Add TODO comment for modal session interaction

* refactor(ui): Move USB configuration to new settings setup

This commit introduces several improvements to the USB configuration workflow:
- Refactored USB configuration dialog component
- Simplified USB config state management
- Moved USB configuration to hardware settings route
- Updated JSON-RPC type definitions
- Cleaned up unused imports and components
- Improved error handling and notifications

* refactor(ui): Replace react-router-dom navigation with custom navigation hook

This commit introduces a new custom navigation hook `useDeviceUiNavigation` to replace direct usage of `useNavigate` across multiple components:
- Removed direct `useNavigate` imports in various components
- Added `navigateTo` method from new navigation hook
- Updated navigation calls in ActionBar, MountPopover, UpdateInProgressStatusCard, and other routes
- Simplified navigation logic and prepared for potential future navigation enhancements
- Removed console logs and unnecessary comments

* refactor(ui): Remove unused react-router-dom import

Clean up unnecessary import of `useNavigate` from react-router-dom in device settings route

* feat(ui): Improve mobile navigation and scrolling in device settings

* refactor(ui): Reorganize device access and security settings

This commit introduces several changes to the device access and security settings:
- Renamed "Security" section to "Access" in settings navigation
- Moved local authentication routes from security to access
- Removed deprecated security settings route
- Added new route for device access settings with cloud and local authentication management
- Updated cloud URL and adoption logic to be part of the access settings
- Simplified routing and component structure for better user experience

* fix(ui): Update logout button hover state color

* fix(ui): Adjust device de-registration button size to small

* fix(ui): Update appearance settings section header and description

* refactor(ui): Replace SectionHeader with new SettingsPageHeader and SettingsSectionHeader components

This commit introduces two new header components for settings pages:
- Created SettingsPageHeader for main page headers
- Created SettingsSectionHeader for subsection headers
- Replaced all existing SectionHeader imports with new components
- Updated styling and type definitions to support more flexible header rendering

* feat(ui): Add dev channel toggle to advanced settings

Move dev channel update option from general settings to advanced settings
- Introduced new state and handler for dev channel toggle
- Removed dev channel option from general settings route
- Added dev channel toggle in advanced settings with error handling
2025-02-27 16:48:50 +01:00