mirror of
https://github.com/unraid/api.git
synced 2026-01-08 01:29:49 -06:00
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced full RClone remote management with creation, deletion, listing, and detailed remote info via a multi-step, schema-driven UI. - Added guided configuration forms supporting advanced and provider-specific options for RClone remotes. - Enabled flash backup initiation through API mutations. - Added new Vue components for RClone configuration, overview, remote item cards, and flash backup page. - Integrated new combobox, stepped layout, control wrapper, label renderer, and improved form renderers with enhanced validation and error display. - Added JSON Forms visibility composable and Unraid settings layout for consistent UI rendering. - **Bug Fixes** - Standardized JSON scalar usage in Docker-related types, replacing `JSONObject` with `JSON`. - **Chores** - Added utility scripts and helpers to manage rclone binary installation and versioning. - Updated build scripts and Storybook configuration for CSS handling and improved developer workflow. - Refactored ESLint config for modularity and enhanced code quality enforcement. - Improved component registration with runtime type checks and error handling. - **Documentation** - Added extensive test coverage for RClone API service, JSON Forms schema merging, and provider config slice generation. - **Style** - Improved UI consistency with new layouts, tooltips on select options, password visibility toggles, and error handling components. - Removed deprecated components and consolidated renderer registrations for JSON Forms. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
27 lines
626 B
TypeScript
27 lines
626 B
TypeScript
import { ref, onMounted } from "vue";
|
|
|
|
const useTeleport = () => {
|
|
const teleportTarget = ref<string | HTMLElement | Element>("#modals");
|
|
|
|
const determineTeleportTarget = () => {
|
|
const myModalsComponent = document.querySelector("unraid-modals");
|
|
if (!myModalsComponent?.shadowRoot) return;
|
|
|
|
const potentialTarget = myModalsComponent.shadowRoot.querySelector("#modals");
|
|
if (!potentialTarget) return;
|
|
|
|
teleportTarget.value = potentialTarget;
|
|
};
|
|
|
|
onMounted(() => {
|
|
determineTeleportTarget();
|
|
});
|
|
|
|
return {
|
|
teleportTarget,
|
|
determineTeleportTarget,
|
|
};
|
|
};
|
|
|
|
export default useTeleport;
|