diff --git a/package.json b/package.json index a822aa244..dd211eda9 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "^2.0.0-RC.1", "@appwrite.io/pink-legacy": "^1.0.3", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@510c1a7", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", @@ -83,7 +83,8 @@ "typescript": "^5.8.2", "typescript-eslint": "^8.30.1", "vite": "^6.2.3", - "vitest": "^3.0.0" + "vitest": "^3.0.0", + "tldts": "^7.0.7" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 02aaffd82..4585dc30e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,13 +22,13 @@ importers: version: 0.25.0 '@appwrite.io/pink-icons-svelte': specifier: ^2.0.0-RC.1 - version: 2.0.0-RC.1(svelte@5.25.3) + version: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9(svelte@5.25.3) '@appwrite.io/pink-legacy': specifier: ^1.0.3 version: 1.0.3 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@510c1a7 - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@510c1a7(svelte@5.25.3) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9(svelte@5.25.3) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -177,6 +177,9 @@ importers: svelte-sequential-preprocessor: specifier: ^2.0.2 version: 2.0.2 + tldts: + specifier: ^7.0.7 + version: 7.0.7 tslib: specifier: ^2.8.1 version: 2.8.1 @@ -258,13 +261,14 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1959} version: 1.5.2 - '@appwrite.io/pink-icons-svelte@2.0.0-RC.1': - resolution: {integrity: sha512-iLFlV55hj8mGuAbmxJGenxN5RaZMmVT4GJb9dv/MP1xBAtYibFq7JvBcxm18qV2KU8c31Rntf+Ub4GL7HwqTYg==} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498} + version: 2.0.0-RC.1 peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@510c1a70bb1a11aa8a58177e657dec6199215595': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@510c1a70bb1a11aa8a58177e657dec6199215595} + '@appwrite.io/pink-icons-svelte@https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9': + resolution: {tarball: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9} version: 2.0.0-RC.1 peerDependencies: svelte: ^4.0.0 @@ -278,8 +282,8 @@ packages: '@appwrite.io/pink-legacy@1.0.3': resolution: {integrity: sha512-GGde5fmPhs+s6/3aFeMPc/kKADG/gTFkYQSy6oBN8pK0y0XNCLrZZgBv+EBbdhwdtqVEWXa0X85Mv9w7jcIlwQ==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@510c1a7': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@510c1a7} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9} version: 2.0.0-RC.2 peerDependencies: svelte: ^4.0.0 @@ -1340,8 +1344,8 @@ packages: '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/react@18.3.20': - resolution: {integrity: sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==} + '@types/react@18.3.22': + resolution: {integrity: sha512-vUhG0YmQZ7kL/tmKLrD3g5zXbXXreZXB3pmROW8bg3CnLnpjkRVwUlLne7Ufa2r9yJ8+/6B73RzhAek5TBKh2Q==} '@types/remarkable@2.0.8': resolution: {integrity: sha512-eKXqPZfpQl1kOADjdKchHrp2gwn9qMnGXhH/AtZe0UrklzhGJkawJo/Y/D0AlWcdWoWamFNIum8+/nkAISQVGg==} @@ -2852,8 +2856,8 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - property-information@7.0.0: - resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -3239,10 +3243,17 @@ packages: tldts-core@6.1.85: resolution: {integrity: sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==} + tldts-core@7.0.7: + resolution: {integrity: sha512-ECqb8imSroX1UmUuhRBNPkkmtZ8mHEenieim80UVxG0M5wXVjY2Fp2tYXCPvk+nLy1geOhFpeD5YQhM/gF63Jg==} + tldts@6.1.85: resolution: {integrity: sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==} hasBin: true + tldts@7.0.7: + resolution: {integrity: sha512-ETNXj36ql5BXDa4VVJk3wgqansg8TI1Yqo217twSAPjyDnh/b2T+XzrI0ftn6EnzVPbXpMTZHOWj5s3a8/uGPA==} + hasBin: true + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -3617,11 +3628,11 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1959': {} - '@appwrite.io/pink-icons-svelte@2.0.0-RC.1(svelte@5.25.3)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498(svelte@5.25.3)': dependencies: svelte: 5.25.3 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@510c1a70bb1a11aa8a58177e657dec6199215595(svelte@5.25.3)': + '@appwrite.io/pink-icons-svelte@https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9(svelte@5.25.3)': dependencies: svelte: 5.25.3 @@ -3634,9 +3645,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@510c1a7(svelte@5.25.3)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9(svelte@5.25.3)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@510c1a70bb1a11aa8a58177e657dec6199215595(svelte@5.25.3) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498(svelte@5.25.3) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.25.3))(svelte@5.25.3) '@melt-ui/svelte': 0.86.6(svelte@5.25.3) @@ -4777,7 +4788,7 @@ snapshots: '@types/prop-types@15.7.14': {} - '@types/react@18.3.20': + '@types/react@18.3.22': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 @@ -5879,7 +5890,7 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 - property-information: 7.0.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -6412,7 +6423,7 @@ snapshots: progress@2.0.3: {} - property-information@7.0.0: {} + property-information@7.1.0: {} proxy-from-env@1.1.0: {} @@ -6725,7 +6736,7 @@ snapshots: svelte-motion@0.12.2(svelte@5.25.3): dependencies: - '@types/react': 18.3.20 + '@types/react': 18.3.22 framesync: 6.1.2 popmotion: 11.0.5 style-value-types: 5.1.2 @@ -6834,10 +6845,16 @@ snapshots: tldts-core@6.1.85: {} + tldts-core@7.0.7: {} + tldts@6.1.85: dependencies: tldts-core: 6.1.85 + tldts@7.0.7: + dependencies: + tldts-core: 7.0.7 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 diff --git a/src/lib/components/domains/nameserverTable.svelte b/src/lib/components/domains/nameserverTable.svelte index da5375bce..f9cbcecfc 100644 --- a/src/lib/components/domains/nameserverTable.svelte +++ b/src/lib/components/domains/nameserverTable.svelte @@ -17,7 +17,7 @@ {domain} {#if verified} - + {:else if verified === false} {/if} diff --git a/src/lib/components/domains/recordTable.svelte b/src/lib/components/domains/recordTable.svelte index 6dc6e6724..f099fa003 100644 --- a/src/lib/components/domains/recordTable.svelte +++ b/src/lib/components/domains/recordTable.svelte @@ -38,9 +38,9 @@ {domain} {#if verified} - + {:else if verified === false} - + {:else} + import { setContext, onMount } from 'svelte'; import { Card } from '@appwrite.io/pink-svelte'; import { createMenubar, melt } from '@melt-ui/svelte'; - import { menuOpen } from '$lib/components/menu/store'; + import { activeMenuId, menuOpen } from '$lib/components/menu/store'; + const menuId = Math.random().toString(36).slice(2); const { elements: { menubar }, builders: { createMenu } } = createMenubar(); const { - elements: { trigger: trigger, menu: menu, separator: separator }, - states: { open } + elements: { trigger, menu, separator }, + states: { open }, + builders // for submenu for same toggle state } = createMenu(); function toggle() { open.update((state) => !state); } - $: menuOpen.set($open); + open.subscribe((state) => { + if (state) activeMenuId.set(menuId); + else activeMenuId.update((current) => (current === menuId ? null : current)); + }); + + onMount(() => { + return activeMenuId.subscribe((id) => { + if (id !== menuId) open.set(false); + }); + }); + + $: menuOpen.set($open as boolean); + + setContext('menuBuilder', { builders, separator });
diff --git a/src/lib/components/menu/store.ts b/src/lib/components/menu/store.ts index 571b30b82..829d2b6e6 100644 --- a/src/lib/components/menu/store.ts +++ b/src/lib/components/menu/store.ts @@ -1,3 +1,17 @@ import { writable } from 'svelte/store'; +import type { createMenubar } from '@melt-ui/svelte'; export const menuOpen = writable(false); + +export const activeMenuId = writable(null); + +/** + * Full menu context passed to submenus — + * includes `builders` and shared `separator`. + */ +export type MenuContext = { + separator: ReturnType< + ReturnType['builders']['createMenu'] + >['elements']['separator']; + builders: ReturnType['builders']['createMenu']>['builders']; +}; diff --git a/src/lib/components/menu/subMenu.svelte b/src/lib/components/menu/subMenu.svelte index 66186bf2a..e6e8e326d 100644 --- a/src/lib/components/menu/subMenu.svelte +++ b/src/lib/components/menu/subMenu.svelte @@ -1,15 +1,12 @@ @@ -179,13 +187,13 @@ - { branch = event.detail.value; }} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/createManual.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/createManual.svelte index d77741486..5c8056398 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/createManual.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/createManual.svelte @@ -11,12 +11,22 @@ import { Icon, Layout, Tooltip, Typography, Upload } from '@appwrite.io/pink-svelte'; import { func } from '../store'; import { page } from '$app/state'; + import { consoleVariables } from '$routes/(console)/store'; + import { currentPlan } from '$lib/stores/organization'; + import { isCloud } from '$lib/system'; export let show = false; let files: FileList; let error: string = ''; + $: maxSize = + isCloud && $currentPlan + ? $currentPlan?.deploymentSize === 0 + ? 0 + : $currentPlan?.deploymentSize * 1000000 + : $consoleVariables._APP_COMPUTE_SIZE_LIMIT; // already in MB + async function create() { try { await sdk @@ -69,7 +79,7 @@ diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/redeployModal.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/redeployModal.svelte index d3f7847cc..6409b9f2b 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/redeployModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/redeployModal.svelte @@ -36,7 +36,7 @@ invalidate(Dependencies.DEPLOYMENTS); if (redirect) { goto( - `${base}/project-${page.params.region}-${page.params.project}/functions/function-${$func.$id}/deployments/deployment-${deployment.$id}` + `${base}/project-${page.params.region}-${page.params.project}/functions/function-${$func.$id}/deployment-${deployment.$id}` ); } show = false; diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index dd26bd21f..e7a55a956 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -20,6 +20,7 @@ import { isValueOfStringEnum } from '$lib/helpers/types.js'; import { isCloud } from '$lib/system'; import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { getApexDomain } from '$lib/helpers/tlds'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/functions/function-${page.params.function}/domains`; @@ -47,14 +48,12 @@ }); async function addDomain() { - let domain = data.domains?.domains.find((d) => d.domain === domainName); + const apexDomain = getApexDomain(domainName); + let domain = data.domains?.domains.find((d) => d.domain === apexDomain); - if (!domain && isCloud) { + if (apexDomain && !domain && isCloud) { try { - domain = await sdk.forConsole.domains.create( - $project.teamId, - domainName.toLocaleLowerCase() - ); + domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { addNotification({ type: 'error', diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index f8b03eb86..0ca8e0f52 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -20,6 +20,7 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; + import { isASubdomain } from '$lib/helpers/tlds'; import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -27,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived(page.params.domain?.split('.')?.length >= 3); + const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { @@ -126,7 +127,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -134,7 +135,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.ts b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.ts index 5fbb56d85..a5f6b1910 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.ts @@ -1,23 +1,17 @@ import { sdk } from '$lib/stores/sdk'; -import { Dependencies } from '$lib/constants.js'; import { isCloud } from '$lib/system'; -import type { Domain, DomainsList } from '$lib/sdk/domains.js'; +import { Dependencies } from '$lib/constants.js'; +import type { DomainsList } from '$lib/sdk/domains.js'; -export const load = async ({ depends, params }) => { +export const load = async ({ depends }) => { depends(Dependencies.DOMAINS); - let domain: Domain; let domainsList: DomainsList; if (isCloud) { domainsList = await sdk.forConsole.domains.list(); - const domainId = domainsList.domains.find( - (domain: Domain) => domain.domain === params.domain - ).$id; - domain = await sdk.forConsole.domains.get(domainId); } return { - domain, domainsList }; }; diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index 09ff91999..781c68bb2 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -11,6 +11,7 @@ import { onMount } from 'svelte'; import { isCloud } from '$lib/system'; import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { getApexDomain } from '$lib/helpers/tlds'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/settings/domains`; @@ -27,14 +28,12 @@ }); async function addDomain() { - let domain = data.domains?.domains.find((d) => d.domain === domainName); + const apexDomain = getApexDomain(domainName); + let domain = data.domains?.domains.find((d) => d.domain === apexDomain); - if (!domain && isCloud) { + if (apexDomain && !domain && isCloud) { try { - domain = await sdk.forConsole.domains.create( - $project.teamId, - domainName.toLocaleLowerCase() - ); + domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { addNotification({ type: 'error', @@ -48,7 +47,7 @@ try { const rule = await sdk .forProject(page.params.region, page.params.project) - .proxy.createAPIRule(domainName); + .proxy.createAPIRule(domainName.toLocaleLowerCase()); if (rule?.status === 'verified') { await goto(routeBase); await invalidate(Dependencies.DOMAINS); diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index ac027c30b..dc9946534 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -20,6 +20,7 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; + import { isASubdomain } from '$lib/helpers/tlds'; import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -27,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived(page.params.domain?.split('.')?.length >= 3); + const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { @@ -125,7 +126,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -133,7 +134,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts index 5fbb56d85..a5f6b1910 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts @@ -1,23 +1,17 @@ import { sdk } from '$lib/stores/sdk'; -import { Dependencies } from '$lib/constants.js'; import { isCloud } from '$lib/system'; -import type { Domain, DomainsList } from '$lib/sdk/domains.js'; +import { Dependencies } from '$lib/constants.js'; +import type { DomainsList } from '$lib/sdk/domains.js'; -export const load = async ({ depends, params }) => { +export const load = async ({ depends }) => { depends(Dependencies.DOMAINS); - let domain: Domain; let domainsList: DomainsList; if (isCloud) { domainsList = await sdk.forConsole.domains.list(); - const domainId = domainsList.domains.find( - (domain: Domain) => domain.domain === params.domain - ).$id; - domain = await sdk.forConsole.domains.get(domainId); } return { - domain, domainsList }; }; diff --git a/src/routes/(console)/project-[region]-[project]/settings/updateName.svelte b/src/routes/(console)/project-[region]-[project]/settings/updateName.svelte index a4ca90b67..af7f27d0d 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/updateName.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/updateName.svelte @@ -11,8 +11,7 @@ import { onMount } from 'svelte'; import { project } from '../store'; import { canWriteProjects } from '$lib/stores/roles'; - - const endpoint = sdk.forConsole.client.config.endpoint; + import { getProjectEndpoint } from '$lib/helpers/project'; let name: string = null; @@ -45,7 +44,7 @@ Access Appwrite services using this project's API Endpoint and Project ID. - +