mirror of
https://github.com/unraid/api.git
synced 2025-12-21 08:39:38 -06:00
chore: rename .ce.vue files to .standalone.vue (#1690)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Documentation - Updated contributor guide to use “standalone” naming for web components. - Refactor - Migrated app and component references from legacy variants to standalone components. - Unified component registry and updated global component typings to standalone names. - Tests - Updated test suites to target standalone components; no behavior changes. No user-facing changes. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
For legacy compatibility, Unraid ships web components to the webgui. These components
|
||||
are written as Vue and turned into web components as a build step. By convention,
|
||||
Vue components that are built as top-level web components are suffixed with `*.ce.vue`
|
||||
Vue components that are built as top-level web components are suffixed with `*.standalone.vue`
|
||||
for "**c**ustom **e**lement", which comes from the tool used for compilation: `nuxt-custom-elements`.
|
||||
|
||||
Note: `nuxt-custom-elements` is currently pinned to a specific version because
|
||||
|
||||
@@ -9,7 +9,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import type { ComposerTranslation } from 'vue-i18n';
|
||||
|
||||
import WelcomeModal from '~/components/Activation/WelcomeModal.ce.vue';
|
||||
import WelcomeModal from '~/components/Activation/WelcomeModal.standalone.vue';
|
||||
|
||||
vi.mock('@unraid/ui', async (importOriginal) => {
|
||||
const actual = (await importOriginal()) as Record<string, unknown>;
|
||||
@@ -76,7 +76,7 @@ vi.mock('~/store/theme', () => ({
|
||||
useThemeStore: () => mockThemeStore,
|
||||
}));
|
||||
|
||||
describe('Activation/WelcomeModal.ce.vue', () => {
|
||||
describe('Activation/WelcomeModal.standalone.vue', () => {
|
||||
let mockSetProperty: ReturnType<typeof vi.fn>;
|
||||
let mockQuerySelector: ReturnType<typeof vi.fn>;
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import type { ServerconnectPluginInstalled } from '~/types/server';
|
||||
|
||||
import Auth from '~/components/Auth.ce.vue';
|
||||
import Auth from '~/components/Auth.standalone.vue';
|
||||
import { useServerStore } from '~/store/server';
|
||||
|
||||
vi.mock('vue-i18n', () => ({
|
||||
|
||||
@@ -12,7 +12,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import type { MockInstance } from 'vitest';
|
||||
|
||||
import ColorSwitcher from '~/components/ColorSwitcher.ce.vue';
|
||||
import ColorSwitcher from '~/components/ColorSwitcher.standalone.vue';
|
||||
import { useThemeStore } from '~/store/theme';
|
||||
|
||||
// Explicitly mock @unraid/ui to ensure we use the actual components
|
||||
|
||||
@@ -8,7 +8,7 @@ import { mount } from '@vue/test-utils';
|
||||
import { createTestingPinia } from '@pinia/testing';
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import DowngradeOs from '~/components/DowngradeOs.ce.vue';
|
||||
import DowngradeOs from '~/components/DowngradeOs.standalone.vue';
|
||||
import { useServerStore } from '~/store/server';
|
||||
|
||||
vi.mock('crypto-js/aes', () => ({
|
||||
|
||||
@@ -8,7 +8,7 @@ import { BrandButton } from '@unraid/ui';
|
||||
import { createTestingPinia } from '@pinia/testing';
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import DownloadApiLogs from '~/components/DownloadApiLogs.ce.vue';
|
||||
import DownloadApiLogs from '~/components/DownloadApiLogs.standalone.vue';
|
||||
|
||||
vi.mock('~/helpers/urls', () => ({
|
||||
CONNECT_FORUMS: new URL('http://mock-forums.local'),
|
||||
|
||||
@@ -14,7 +14,7 @@ import type { VueWrapper } from '@vue/test-utils';
|
||||
import type { Error as CustomApiError } from '~/store/errors';
|
||||
import type { ServerUpdateOsResponse } from '~/types/server';
|
||||
|
||||
import HeaderOsVersion from '~/components/HeaderOsVersion.ce.vue';
|
||||
import HeaderOsVersion from '~/components/HeaderOsVersion.standalone.vue';
|
||||
import { useErrorsStore } from '~/store/errors';
|
||||
import { useServerStore } from '~/store/server';
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import type { VueWrapper } from '@vue/test-utils';
|
||||
import type { ServerconnectPluginInstalled } from '~/types/server';
|
||||
import type { Pinia } from 'pinia';
|
||||
|
||||
import Registration from '~/components/Registration.ce.vue';
|
||||
import Registration from '~/components/Registration.standalone.vue';
|
||||
import { usePurchaseStore } from '~/store/purchase';
|
||||
import { useReplaceRenewStore } from '~/store/replaceRenew';
|
||||
import { useServerStore } from '~/store/server';
|
||||
@@ -116,7 +116,7 @@ vi.mock('vue-i18n', () => ({
|
||||
useI18n: () => ({ t }),
|
||||
}));
|
||||
|
||||
describe('Registration.ce.vue', () => {
|
||||
describe('Registration.standalone.vue', () => {
|
||||
let wrapper: VueWrapper<unknown>;
|
||||
let pinia: Pinia;
|
||||
let serverStore: ReturnType<typeof useServerStore>;
|
||||
|
||||
@@ -46,14 +46,14 @@ const mockLocation = {
|
||||
|
||||
vi.stubGlobal('location', mockLocation);
|
||||
|
||||
describe('ThemeSwitcher.ce.vue', () => {
|
||||
describe('ThemeSwitcher.standalone.vue', () => {
|
||||
let consoleDebugSpy: MockInstance;
|
||||
let consoleLogSpy: MockInstance;
|
||||
let consoleErrorSpy: MockInstance;
|
||||
let ThemeSwitcher: unknown;
|
||||
|
||||
beforeEach(async () => {
|
||||
ThemeSwitcher = (await import('~/components/ThemeSwitcher.ce.vue')).default;
|
||||
ThemeSwitcher = (await import('~/components/ThemeSwitcher.standalone.vue')).default;
|
||||
|
||||
vi.useFakeTimers();
|
||||
vi.clearAllMocks();
|
||||
|
||||
@@ -8,7 +8,7 @@ import { mount } from '@vue/test-utils';
|
||||
import { createTestingPinia } from '@pinia/testing';
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import UpdateOs from '~/components/UpdateOs.ce.vue';
|
||||
import UpdateOs from '~/components/UpdateOs.standalone.vue';
|
||||
|
||||
vi.mock('@unraid/ui', () => ({
|
||||
PageContainer: { template: '<div><slot /></div>' },
|
||||
@@ -61,7 +61,7 @@ const UpdateOsThirdPartyDriversStub = {
|
||||
props: ['t'],
|
||||
};
|
||||
|
||||
describe('UpdateOs.ce.vue', () => {
|
||||
describe('UpdateOs.standalone.vue', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
mockRebootType.value = '';
|
||||
|
||||
@@ -11,7 +11,7 @@ import type { VueWrapper } from '@vue/test-utils';
|
||||
import type { Server, ServerconnectPluginInstalled, ServerState } from '~/types/server';
|
||||
import type { Pinia } from 'pinia';
|
||||
|
||||
import UserProfile from '~/components/UserProfile.ce.vue';
|
||||
import UserProfile from '~/components/UserProfile.standalone.vue';
|
||||
import { useServerStore } from '~/store/server';
|
||||
import { useThemeStore } from '~/store/theme';
|
||||
|
||||
@@ -101,7 +101,7 @@ const stubs = {
|
||||
UpcDropdownTrigger: { template: '<button data-testid="dropdown-trigger"></button>' },
|
||||
};
|
||||
|
||||
describe('UserProfile.ce.vue', () => {
|
||||
describe('UserProfile.standalone.vue', () => {
|
||||
let wrapper: VueWrapper<InstanceType<typeof UserProfile>>;
|
||||
let pinia: Pinia;
|
||||
let serverStore: ReturnType<typeof useServerStore>;
|
||||
|
||||
@@ -93,7 +93,7 @@ const WanIpCheckStub = defineComponent({
|
||||
},
|
||||
});
|
||||
|
||||
describe('WanIpCheck.ce.vue', () => {
|
||||
describe('WanIpCheck.standalone.vue', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ function calculateTitle(partnerName: string | null) {
|
||||
: 'Welcome to Unraid!';
|
||||
}
|
||||
|
||||
describe('WelcomeModal.ce.vue', () => {
|
||||
describe('WelcomeModal.standalone.vue', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
mockPartnerName.mockReturnValue(null);
|
||||
|
||||
@@ -1,55 +1,55 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
// Mock all the component imports
|
||||
vi.mock('~/components/Auth.ce.vue', () => ({
|
||||
vi.mock('~/components/Auth.standalone.vue', () => ({
|
||||
default: { name: 'MockAuth', template: '<div>Auth</div>' },
|
||||
}));
|
||||
vi.mock('~/components/ConnectSettings/ConnectSettings.ce.vue', () => ({
|
||||
vi.mock('~/components/ConnectSettings/ConnectSettings.standalone.vue', () => ({
|
||||
default: { name: 'MockConnectSettings', template: '<div>ConnectSettings</div>' },
|
||||
}));
|
||||
vi.mock('~/components/DownloadApiLogs.ce.vue', () => ({
|
||||
vi.mock('~/components/DownloadApiLogs.standalone.vue', () => ({
|
||||
default: { name: 'MockDownloadApiLogs', template: '<div>DownloadApiLogs</div>' },
|
||||
}));
|
||||
vi.mock('~/components/HeaderOsVersion.ce.vue', () => ({
|
||||
vi.mock('~/components/HeaderOsVersion.standalone.vue', () => ({
|
||||
default: { name: 'MockHeaderOsVersion', template: '<div>HeaderOsVersion</div>' },
|
||||
}));
|
||||
vi.mock('~/components/Modals.ce.vue', () => ({
|
||||
vi.mock('~/components/Modals.standalone.vue', () => ({
|
||||
default: { name: 'MockModals', template: '<div>Modals</div>' },
|
||||
}));
|
||||
vi.mock('~/components/UserProfile.ce.vue', () => ({
|
||||
vi.mock('~/components/UserProfile.standalone.vue', () => ({
|
||||
default: { name: 'MockUserProfile', template: '<div>UserProfile</div>' },
|
||||
}));
|
||||
vi.mock('~/components/UpdateOs.ce.vue', () => ({
|
||||
vi.mock('~/components/UpdateOs.standalone.vue', () => ({
|
||||
default: { name: 'MockUpdateOs', template: '<div>UpdateOs</div>' },
|
||||
}));
|
||||
vi.mock('~/components/DowngradeOs.ce.vue', () => ({
|
||||
vi.mock('~/components/DowngradeOs.standalone.vue', () => ({
|
||||
default: { name: 'MockDowngradeOs', template: '<div>DowngradeOs</div>' },
|
||||
}));
|
||||
vi.mock('~/components/Registration.ce.vue', () => ({
|
||||
vi.mock('~/components/Registration.standalone.vue', () => ({
|
||||
default: { name: 'MockRegistration', template: '<div>Registration</div>' },
|
||||
}));
|
||||
vi.mock('~/components/WanIpCheck.ce.vue', () => ({
|
||||
vi.mock('~/components/WanIpCheck.standalone.vue', () => ({
|
||||
default: { name: 'MockWanIpCheck', template: '<div>WanIpCheck</div>' },
|
||||
}));
|
||||
vi.mock('~/components/Activation/WelcomeModal.ce.vue', () => ({
|
||||
vi.mock('~/components/Activation/WelcomeModal.standalone.vue', () => ({
|
||||
default: { name: 'MockWelcomeModal', template: '<div>WelcomeModal</div>' },
|
||||
}));
|
||||
vi.mock('~/components/SsoButton.ce.vue', () => ({
|
||||
vi.mock('~/components/SsoButton.standalone.vue', () => ({
|
||||
default: { name: 'MockSsoButton', template: '<div>SsoButton</div>' },
|
||||
}));
|
||||
vi.mock('~/components/Logs/LogViewer.ce.vue', () => ({
|
||||
vi.mock('~/components/Logs/LogViewer.standalone.vue', () => ({
|
||||
default: { name: 'MockLogViewer', template: '<div>LogViewer</div>' },
|
||||
}));
|
||||
vi.mock('~/components/ThemeSwitcher.ce.vue', () => ({
|
||||
vi.mock('~/components/ThemeSwitcher.standalone.vue', () => ({
|
||||
default: { name: 'MockThemeSwitcher', template: '<div>ThemeSwitcher</div>' },
|
||||
}));
|
||||
vi.mock('~/components/ApiKeyPage.ce.vue', () => ({
|
||||
vi.mock('~/components/ApiKeyPage.standalone.vue', () => ({
|
||||
default: { name: 'MockApiKeyPage', template: '<div>ApiKeyPage</div>' },
|
||||
}));
|
||||
vi.mock('~/components/DevModalTest.ce.vue', () => ({
|
||||
vi.mock('~/components/DevModalTest.standalone.vue', () => ({
|
||||
default: { name: 'MockDevModalTest', template: '<div>DevModalTest</div>' },
|
||||
}));
|
||||
vi.mock('~/components/ApiKeyAuthorize.ce.vue', () => ({
|
||||
vi.mock('~/components/ApiKeyAuthorize.standalone.vue', () => ({
|
||||
default: { name: 'MockApiKeyAuthorize', template: '<div>ApiKeyAuthorize</div>' },
|
||||
}));
|
||||
vi.mock('~/components/UnraidToaster.vue', () => ({
|
||||
|
||||
40
web/components.d.ts
vendored
40
web/components.d.ts
vendored
@@ -12,17 +12,17 @@ declare module 'vue' {
|
||||
ActivationPartnerLogo: typeof import('./src/components/Activation/ActivationPartnerLogo.vue')['default']
|
||||
ActivationPartnerLogoImg: typeof import('./src/components/Activation/ActivationPartnerLogoImg.vue')['default']
|
||||
ActivationSteps: typeof import('./src/components/Activation/ActivationSteps.vue')['default']
|
||||
'ApiKeyAuthorize.ce': typeof import('./src/components/ApiKeyAuthorize.ce.vue')['default']
|
||||
'ApiKeyAuthorize.standalone': typeof import('./src/components/ApiKeyAuthorize.standalone.vue')['default']
|
||||
ApiKeyCreate: typeof import('./src/components/ApiKey/ApiKeyCreate.vue')['default']
|
||||
ApiKeyManager: typeof import('./src/components/ApiKey/ApiKeyManager.vue')['default']
|
||||
'ApiKeyPage.ce': typeof import('./src/components/ApiKeyPage.ce.vue')['default']
|
||||
'Auth.ce': typeof import('./src/components/Auth.ce.vue')['default']
|
||||
'ApiKeyPage.standalone': typeof import('./src/components/ApiKeyPage.standalone.vue')['default']
|
||||
'Auth.standalone': typeof import('./src/components/Auth.standalone.vue')['default']
|
||||
Avatar: typeof import('./src/components/Brand/Avatar.vue')['default']
|
||||
Beta: typeof import('./src/components/UserProfile/Beta.vue')['default']
|
||||
CallbackButton: typeof import('./src/components/UpdateOs/CallbackButton.vue')['default']
|
||||
CallbackFeedback: typeof import('./src/components/UserProfile/CallbackFeedback.vue')['default']
|
||||
CallbackFeedbackStatus: typeof import('./src/components/UserProfile/CallbackFeedbackStatus.vue')['default']
|
||||
'CallbackHandler.ce': typeof import('./src/components/CallbackHandler.ce.vue')['default']
|
||||
'CallbackHandler.standalone': typeof import('./src/components/CallbackHandler.standalone.vue')['default']
|
||||
Card: typeof import('./src/components/LayoutViews/Card/Card.vue')['default']
|
||||
CardGrid: typeof import('./src/components/LayoutViews/Card/CardGrid.vue')['default']
|
||||
CardGroupHeader: typeof import('./src/components/LayoutViews/Card/CardGroupHeader.vue')['default']
|
||||
@@ -30,20 +30,20 @@ declare module 'vue' {
|
||||
CardItem: typeof import('./src/components/LayoutViews/Card/CardItem.vue')['default']
|
||||
ChangelogModal: typeof import('./src/components/UpdateOs/ChangelogModal.vue')['default']
|
||||
CheckUpdateResponseModal: typeof import('./src/components/UpdateOs/CheckUpdateResponseModal.vue')['default']
|
||||
'ColorSwitcher.ce': typeof import('./src/components/ColorSwitcher.ce.vue')['default']
|
||||
'ConnectSettings.ce': typeof import('./src/components/ConnectSettings/ConnectSettings.ce.vue')['default']
|
||||
'ColorSwitcher.standalone': typeof import('./src/components/ColorSwitcher.standalone.vue')['default']
|
||||
'ConnectSettings.standalone': typeof import('./src/components/ConnectSettings/ConnectSettings.standalone.vue')['default']
|
||||
Console: typeof import('./src/components/Docker/Console.vue')['default']
|
||||
Detail: typeof import('./src/components/LayoutViews/Detail/Detail.vue')['default']
|
||||
DetailContentHeader: typeof import('./src/components/LayoutViews/Detail/DetailContentHeader.vue')['default']
|
||||
DetailLeftNavigation: typeof import('./src/components/LayoutViews/Detail/DetailLeftNavigation.vue')['default']
|
||||
DetailRightContent: typeof import('./src/components/LayoutViews/Detail/DetailRightContent.vue')['default']
|
||||
'DetailTest.ce': typeof import('./src/components/LayoutViews/Detail/DetailTest.ce.vue')['default']
|
||||
'DetailTest.standalone': typeof import('./src/components/LayoutViews/Detail/DetailTest.standalone.vue')['default']
|
||||
DeveloperAuthorizationLink: typeof import('./src/components/ApiKey/DeveloperAuthorizationLink.vue')['default']
|
||||
'DevModalTest.ce': typeof import('./src/components/DevModalTest.ce.vue')['default']
|
||||
'DevModalTest.standalone': typeof import('./src/components/DevModalTest.standalone.vue')['default']
|
||||
DevSettings: typeof import('./src/components/DevSettings.vue')['default']
|
||||
Downgrade: typeof import('./src/components/UpdateOs/Downgrade.vue')['default']
|
||||
'DowngradeOs.ce': typeof import('./src/components/DowngradeOs.ce.vue')['default']
|
||||
'DownloadApiLogs.ce': typeof import('./src/components/DownloadApiLogs.ce.vue')['default']
|
||||
'DowngradeOs.standalone': typeof import('./src/components/DowngradeOs.standalone.vue')['default']
|
||||
'DownloadApiLogs.standalone': typeof import('./src/components/DownloadApiLogs.standalone.vue')['default']
|
||||
DropdownConnectStatus: typeof import('./src/components/UserProfile/DropdownConnectStatus.vue')['default']
|
||||
DropdownContent: typeof import('./src/components/UserProfile/DropdownContent.vue')['default']
|
||||
DropdownError: typeof import('./src/components/UserProfile/DropdownError.vue')['default']
|
||||
@@ -57,7 +57,7 @@ declare module 'vue' {
|
||||
FileViewer: typeof import('./src/components/FileViewer.vue')['default']
|
||||
FilteredLogModal: typeof import('./src/components/Logs/FilteredLogModal.vue')['default']
|
||||
HeaderContent: typeof import('./src/components/Docker/HeaderContent.vue')['default']
|
||||
'HeaderOsVersion.ce': typeof import('./src/components/HeaderOsVersion.ce.vue')['default']
|
||||
'HeaderOsVersion.standalone': typeof import('./src/components/HeaderOsVersion.standalone.vue')['default']
|
||||
IgnoredRelease: typeof import('./src/components/UpdateOs/IgnoredRelease.vue')['default']
|
||||
Indicator: typeof import('./src/components/Notifications/Indicator.vue')['default']
|
||||
Item: typeof import('./src/components/Notifications/Item.vue')['default']
|
||||
@@ -68,11 +68,11 @@ declare module 'vue' {
|
||||
LogFilterInput: typeof import('./src/components/Logs/LogFilterInput.vue')['default']
|
||||
Logo: typeof import('./src/components/Brand/Logo.vue')['default']
|
||||
Logs: typeof import('./src/components/Docker/Logs.vue')['default']
|
||||
'LogViewer.ce': typeof import('./src/components/Logs/LogViewer.ce.vue')['default']
|
||||
'LogViewer.standalone': typeof import('./src/components/Logs/LogViewer.standalone.vue')['default']
|
||||
LogViewerToolbar: typeof import('./src/components/Logs/LogViewerToolbar.vue')['default']
|
||||
Mark: typeof import('./src/components/Brand/Mark.vue')['default']
|
||||
Modal: typeof import('./src/components/Modal.vue')['default']
|
||||
'Modals.ce': typeof import('./src/components/Modals.ce.vue')['default']
|
||||
'Modals.standalone': typeof import('./src/components/Modals.standalone.vue')['default']
|
||||
OidcDebugButton: typeof import('./src/components/Logs/OidcDebugButton.vue')['default']
|
||||
OidcDebugLogs: typeof import('./src/components/ConnectSettings/OidcDebugLogs.vue')['default']
|
||||
Overview: typeof import('./src/components/Docker/Overview.vue')['default']
|
||||
@@ -81,7 +81,7 @@ declare module 'vue' {
|
||||
RawChangelogRenderer: typeof import('./src/components/UpdateOs/RawChangelogRenderer.vue')['default']
|
||||
RCloneConfig: typeof import('./src/components/RClone/RCloneConfig.vue')['default']
|
||||
RCloneOverview: typeof import('./src/components/RClone/RCloneOverview.vue')['default']
|
||||
'Registration.ce': typeof import('./src/components/Registration.ce.vue')['default']
|
||||
'Registration.standalone': typeof import('./src/components/Registration.standalone.vue')['default']
|
||||
ReleaseNotesModal: typeof import('./src/components/ReleaseNotesModal.vue')['default']
|
||||
RemoteItem: typeof import('./src/components/RClone/RemoteItem.vue')['default']
|
||||
ReplaceCheck: typeof import('./src/components/Registration/ReplaceCheck.vue')['default']
|
||||
@@ -93,11 +93,11 @@ declare module 'vue' {
|
||||
ServerStatus: typeof import('./src/components/UserProfile/ServerStatus.vue')['default']
|
||||
Sidebar: typeof import('./src/components/Notifications/Sidebar.vue')['default']
|
||||
SingleLogViewer: typeof import('./src/components/Logs/SingleLogViewer.vue')['default']
|
||||
'SsoButton.ce': typeof import('./src/components/SsoButton.ce.vue')['default']
|
||||
'SsoButton.standalone': typeof import('./src/components/SsoButton.standalone.vue')['default']
|
||||
SsoButtons: typeof import('./src/components/sso/SsoButtons.vue')['default']
|
||||
SsoProviderButton: typeof import('./src/components/sso/SsoProviderButton.vue')['default']
|
||||
Status: typeof import('./src/components/UpdateOs/Status.vue')['default']
|
||||
'ThemeSwitcher.ce': typeof import('./src/components/ThemeSwitcher.ce.vue')['default']
|
||||
'ThemeSwitcher.standalone': typeof import('./src/components/ThemeSwitcher.standalone.vue')['default']
|
||||
ThirdPartyDrivers: typeof import('./src/components/UpdateOs/ThirdPartyDrivers.vue')['default']
|
||||
Trial: typeof import('./src/components/UserProfile/Trial.vue')['default']
|
||||
UBadge: typeof import('./../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.3_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_717626353d7e2aa0e50ed397345224b8/node_modules/@nuxt/ui/dist/runtime/components/Badge.vue')['default']
|
||||
@@ -115,13 +115,13 @@ declare module 'vue' {
|
||||
UpdateExpiration: typeof import('./src/components/Registration/UpdateExpiration.vue')['default']
|
||||
UpdateExpirationAction: typeof import('./src/components/Registration/UpdateExpirationAction.vue')['default']
|
||||
UpdateIneligible: typeof import('./src/components/UpdateOs/UpdateIneligible.vue')['default']
|
||||
'UpdateOs.ce': typeof import('./src/components/UpdateOs.ce.vue')['default']
|
||||
'UpdateOs.standalone': typeof import('./src/components/UpdateOs.standalone.vue')['default']
|
||||
UptimeExpire: typeof import('./src/components/UserProfile/UptimeExpire.vue')['default']
|
||||
USelectMenu: typeof import('./../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.3_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_717626353d7e2aa0e50ed397345224b8/node_modules/@nuxt/ui/dist/runtime/components/SelectMenu.vue')['default']
|
||||
'UserProfile.ce': typeof import('./src/components/UserProfile.ce.vue')['default']
|
||||
'UserProfile.standalone': typeof import('./src/components/UserProfile.standalone.vue')['default']
|
||||
USwitch: typeof import('./../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.3_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_717626353d7e2aa0e50ed397345224b8/node_modules/@nuxt/ui/dist/runtime/components/Switch.vue')['default']
|
||||
UTabs: typeof import('./../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.3_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_717626353d7e2aa0e50ed397345224b8/node_modules/@nuxt/ui/dist/runtime/components/Tabs.vue')['default']
|
||||
'WanIpCheck.ce': typeof import('./src/components/WanIpCheck.ce.vue')['default']
|
||||
'WelcomeModal.ce': typeof import('./src/components/Activation/WelcomeModal.ce.vue')['default']
|
||||
'WanIpCheck.standalone': typeof import('./src/components/WanIpCheck.standalone.vue')['default']
|
||||
'WelcomeModal.standalone': typeof import('./src/components/Activation/WelcomeModal.standalone.vue')['default']
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import { watchDebounced } from '@vueuse/core';
|
||||
import { BrandButton, jsonFormsAjv, jsonFormsRenderers, Label, SettingsGrid } from '@unraid/ui';
|
||||
import { JsonForms } from '@jsonforms/vue';
|
||||
|
||||
import Auth from '~/components/Auth.ce.vue';
|
||||
import Auth from '~/components/Auth.standalone.vue';
|
||||
// unified settings values are returned as JSON, so use a generic record type
|
||||
// import type { ConnectSettingsValues } from '~/composables/gql/graphql';
|
||||
|
||||
@@ -20,7 +20,7 @@ import {
|
||||
updateConnectSettings,
|
||||
} from '~/components/ConnectSettings/graphql/settings.query';
|
||||
import OidcDebugLogs from '~/components/ConnectSettings/OidcDebugLogs.vue';
|
||||
import DownloadApiLogs from '~/components/DownloadApiLogs.ce.vue';
|
||||
import DownloadApiLogs from '~/components/DownloadApiLogs.standalone.vue';
|
||||
import { useServerStore } from '~/store/server';
|
||||
|
||||
// Disable automatic attribute inheritance
|
||||
@@ -9,10 +9,10 @@ import '~/assets/main.css';
|
||||
|
||||
// Static imports for critical components that are always present
|
||||
// These are included in the main bundle for faster initial render
|
||||
import HeaderOsVersionCe from '@/components/HeaderOsVersion.ce.vue';
|
||||
import ModalsCe from '@/components/Modals.ce.vue';
|
||||
import ThemeSwitcherCe from '@/components/ThemeSwitcher.ce.vue';
|
||||
import UserProfileCe from '@/components/UserProfile.ce.vue';
|
||||
import HeaderOsVersionCe from '@/components/HeaderOsVersion.standalone.vue';
|
||||
import ModalsCe from '@/components/Modals.standalone.vue';
|
||||
import ThemeSwitcherCe from '@/components/ThemeSwitcher.standalone.vue';
|
||||
import UserProfileCe from '@/components/UserProfile.standalone.vue';
|
||||
|
||||
// Type for Vue component module
|
||||
type VueComponentModule = { default: object } | object;
|
||||
@@ -31,17 +31,17 @@ export type ComponentMapping = {
|
||||
// Page-specific components use dynamic imports (lazy loaded)
|
||||
export const componentMappings: ComponentMapping[] = [
|
||||
{
|
||||
loader: () => import('../Auth.ce.vue'),
|
||||
loader: () => import('../Auth.standalone.vue'),
|
||||
selector: 'unraid-auth',
|
||||
appId: 'auth',
|
||||
},
|
||||
{
|
||||
loader: () => import('../ConnectSettings/ConnectSettings.ce.vue'),
|
||||
loader: () => import('../ConnectSettings/ConnectSettings.standalone.vue'),
|
||||
selector: 'unraid-connect-settings',
|
||||
appId: 'connect-settings',
|
||||
},
|
||||
{
|
||||
loader: () => import('../DownloadApiLogs.ce.vue'),
|
||||
loader: () => import('../DownloadApiLogs.standalone.vue'),
|
||||
selector: 'unraid-download-api-logs',
|
||||
appId: 'download-api-logs',
|
||||
},
|
||||
@@ -61,42 +61,42 @@ export const componentMappings: ComponentMapping[] = [
|
||||
appId: 'user-profile',
|
||||
},
|
||||
{
|
||||
loader: () => import('../Registration.ce.vue'),
|
||||
loader: () => import('../Registration.standalone.vue'),
|
||||
selector: 'unraid-registration',
|
||||
appId: 'registration',
|
||||
},
|
||||
{
|
||||
loader: () => import('../WanIpCheck.ce.vue'),
|
||||
loader: () => import('../WanIpCheck.standalone.vue'),
|
||||
selector: 'unraid-wan-ip-check',
|
||||
appId: 'wan-ip-check',
|
||||
},
|
||||
{
|
||||
loader: () => import('../CallbackHandler.ce.vue'),
|
||||
loader: () => import('../CallbackHandler.standalone.vue'),
|
||||
selector: 'unraid-callback-handler',
|
||||
appId: 'callback-handler',
|
||||
},
|
||||
{
|
||||
loader: () => import('../Logs/LogViewer.ce.vue'),
|
||||
loader: () => import('../Logs/LogViewer.standalone.vue'),
|
||||
selector: 'unraid-log-viewer',
|
||||
appId: 'log-viewer',
|
||||
},
|
||||
{
|
||||
loader: () => import('../SsoButton.ce.vue'),
|
||||
loader: () => import('../SsoButton.standalone.vue'),
|
||||
selector: 'unraid-sso-button',
|
||||
appId: 'sso-button',
|
||||
},
|
||||
{
|
||||
loader: () => import('../Activation/WelcomeModal.ce.vue'),
|
||||
loader: () => import('../Activation/WelcomeModal.standalone.vue'),
|
||||
selector: 'unraid-welcome-modal',
|
||||
appId: 'welcome-modal',
|
||||
},
|
||||
{
|
||||
loader: () => import('../UpdateOs.ce.vue'),
|
||||
loader: () => import('../UpdateOs.standalone.vue'),
|
||||
selector: 'unraid-update-os',
|
||||
appId: 'update-os',
|
||||
},
|
||||
{
|
||||
loader: () => import('../DowngradeOs.ce.vue'),
|
||||
loader: () => import('../DowngradeOs.standalone.vue'),
|
||||
selector: 'unraid-downgrade-os',
|
||||
appId: 'downgrade-os',
|
||||
},
|
||||
@@ -106,22 +106,22 @@ export const componentMappings: ComponentMapping[] = [
|
||||
appId: 'dev-settings',
|
||||
},
|
||||
{
|
||||
loader: () => import('../ApiKeyPage.ce.vue'),
|
||||
loader: () => import('../ApiKeyPage.standalone.vue'),
|
||||
selector: ['unraid-apikey-page', 'unraid-api-key-manager'],
|
||||
appId: 'apikey-page',
|
||||
},
|
||||
{
|
||||
loader: () => import('../ApiKeyAuthorize.ce.vue'),
|
||||
loader: () => import('../ApiKeyAuthorize.standalone.vue'),
|
||||
selector: 'unraid-apikey-authorize',
|
||||
appId: 'apikey-authorize',
|
||||
},
|
||||
{
|
||||
loader: () => import('../DevModalTest.ce.vue'),
|
||||
loader: () => import('../DevModalTest.standalone.vue'),
|
||||
selector: 'unraid-dev-modal-test',
|
||||
appId: 'dev-modal-test',
|
||||
},
|
||||
{
|
||||
loader: () => import('../LayoutViews/Detail/DetailTest.ce.vue'),
|
||||
loader: () => import('../LayoutViews/Detail/DetailTest.standalone.vue'),
|
||||
selector: 'unraid-detail-test',
|
||||
appId: 'detail-test',
|
||||
},
|
||||
@@ -131,7 +131,7 @@ export const componentMappings: ComponentMapping[] = [
|
||||
appId: 'theme-switcher',
|
||||
},
|
||||
{
|
||||
loader: () => import('../ColorSwitcher.ce.vue'),
|
||||
loader: () => import('../ColorSwitcher.standalone.vue'),
|
||||
selector: 'unraid-color-switcher',
|
||||
appId: 'color-switcher',
|
||||
},
|
||||
|
||||
@@ -10,16 +10,16 @@ import AES from 'crypto-js/aes';
|
||||
|
||||
import type { SendPayloads } from '@unraid/shared-callbacks';
|
||||
|
||||
import WelcomeModalCe from '~/components/Activation/WelcomeModal.ce.vue';
|
||||
import ConnectSettingsCe from '~/components/ConnectSettings/ConnectSettings.ce.vue';
|
||||
import DowngradeOsCe from '~/components/DowngradeOs.ce.vue';
|
||||
import HeaderOsVersionCe from '~/components/HeaderOsVersion.ce.vue';
|
||||
import LogViewerCe from '~/components/Logs/LogViewer.ce.vue';
|
||||
import ModalsCe from '~/components/Modals.ce.vue';
|
||||
import RegistrationCe from '~/components/Registration.ce.vue';
|
||||
import SsoButtonCe from '~/components/SsoButton.ce.vue';
|
||||
import UpdateOsCe from '~/components/UpdateOs.ce.vue';
|
||||
import UserProfileCe from '~/components/UserProfile.ce.vue';
|
||||
import WelcomeModalCe from '~/components/Activation/WelcomeModal.standalone.vue';
|
||||
import ConnectSettingsCe from '~/components/ConnectSettings/ConnectSettings.standalone.vue';
|
||||
import DowngradeOsCe from '~/components/DowngradeOs.standalone.vue';
|
||||
import HeaderOsVersionCe from '~/components/HeaderOsVersion.standalone.vue';
|
||||
import LogViewerCe from '~/components/Logs/LogViewer.standalone.vue';
|
||||
import ModalsCe from '~/components/Modals.standalone.vue';
|
||||
import RegistrationCe from '~/components/Registration.standalone.vue';
|
||||
import SsoButtonCe from '~/components/SsoButton.standalone.vue';
|
||||
import UpdateOsCe from '~/components/UpdateOs.standalone.vue';
|
||||
import UserProfileCe from '~/components/UserProfile.standalone.vue';
|
||||
import { useThemeStore } from '~/store/theme';
|
||||
|
||||
const serverStore = useDummyServerStore();
|
||||
|
||||
@@ -7,7 +7,7 @@ import { useQuery } from '@vue/apollo-composable';
|
||||
import { Button, Dialog, Input } from '@unraid/ui';
|
||||
import { SERVER_INFO_QUERY } from '~/pages/login.query';
|
||||
|
||||
import SsoButtonCe from '~/components/SsoButton.ce.vue';
|
||||
import SsoButtonCe from '~/components/SsoButton.standalone.vue';
|
||||
|
||||
const { t } = useI18n();
|
||||
const { result } = useQuery(SERVER_INFO_QUERY);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import ApiKeyAuthorize from '~/components/ApiKeyAuthorize.ce.vue';
|
||||
import ApiKeyAuthorize from '~/components/ApiKeyAuthorize.standalone.vue';
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -5,8 +5,8 @@ import { storeToRefs } from 'pinia';
|
||||
import { useActivationCodeDataStore } from '~/components/Activation/store/activationCodeData';
|
||||
import { useActivationCodeModalStore } from '~/components/Activation/store/activationCodeModal';
|
||||
import { useWelcomeModalDataStore } from '~/components/Activation/store/welcomeModalData';
|
||||
import WelcomeModalCe from '~/components/Activation/WelcomeModal.ce.vue';
|
||||
import ModalsCe from '~/components/Modals.ce.vue';
|
||||
import WelcomeModalCe from '~/components/Activation/WelcomeModal.standalone.vue';
|
||||
import ModalsCe from '~/components/Modals.standalone.vue';
|
||||
import { useCallbackActionsStore } from '~/store/callbackActions';
|
||||
|
||||
const welcomeModalRef = ref<InstanceType<typeof WelcomeModalCe>>();
|
||||
|
||||
Reference in New Issue
Block a user