mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
update: show upgrade for more regions.
This commit is contained in:
+1
-1
@@ -19,7 +19,7 @@
|
||||
"e2e:ui": "playwright test tests/e2e --ui"
|
||||
},
|
||||
"dependencies": {
|
||||
"@appwrite.io/console": "1.6.0",
|
||||
"@appwrite.io/console": "https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@c985738",
|
||||
"@appwrite.io/pink": "0.25.0",
|
||||
"@appwrite.io/pink-icons": "0.25.0",
|
||||
"@popperjs/core": "^2.11.8",
|
||||
|
||||
Generated
+6
-5
@@ -12,8 +12,8 @@ importers:
|
||||
specifier: ^1.1.24
|
||||
version: 1.1.24(svelte@4.2.19)(zod@3.24.2)
|
||||
'@appwrite.io/console':
|
||||
specifier: 1.6.0
|
||||
version: 1.6.0
|
||||
specifier: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@c985738
|
||||
version: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@c985738
|
||||
'@appwrite.io/pink':
|
||||
specifier: 0.25.0
|
||||
version: 0.25.0
|
||||
@@ -230,8 +230,9 @@ packages:
|
||||
'@analytics/type-utils@0.6.2':
|
||||
resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==}
|
||||
|
||||
'@appwrite.io/console@1.6.0':
|
||||
resolution: {integrity: sha512-o8dvCeJcnMORozB2NdLCiN042HyyLLQzteiTelU83dTgp7q2E1DTKu69hFwyMgoEXqcxMmKeJKmMI/1qt002IQ==}
|
||||
'@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@c985738':
|
||||
resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@c985738}
|
||||
version: 1.5.2
|
||||
|
||||
'@appwrite.io/pink-icons@0.25.0':
|
||||
resolution: {integrity: sha512-0O3i2oEuh5mWvjO80i+X6rbzrWLJ1m5wmv2/M3a1p2PyBJsFxN8xQMTEmTn3Wl/D26SsM7SpzbdW6gmfgoVU9Q==}
|
||||
@@ -3796,7 +3797,7 @@ snapshots:
|
||||
|
||||
'@analytics/type-utils@0.6.2': {}
|
||||
|
||||
'@appwrite.io/console@1.6.0': {}
|
||||
'@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@c985738': {}
|
||||
|
||||
'@appwrite.io/pink-icons@0.25.0': {}
|
||||
|
||||
|
||||
+1
-14
@@ -260,19 +260,6 @@ export type AllowedRegions =
|
||||
| 'syd'
|
||||
| 'default'; //TODO: remove after migration
|
||||
|
||||
export type Region = {
|
||||
$id: AllowedRegions;
|
||||
name: string;
|
||||
disabled: boolean;
|
||||
default: boolean;
|
||||
flag: string;
|
||||
};
|
||||
|
||||
export type RegionList = {
|
||||
regions: Region[];
|
||||
total: number;
|
||||
};
|
||||
|
||||
export type Address = {
|
||||
$id: string;
|
||||
streetAddress: string;
|
||||
@@ -1276,7 +1263,7 @@ export class Billing {
|
||||
);
|
||||
}
|
||||
|
||||
async listRegions(teamId: string): Promise<RegionList> {
|
||||
async listRegions(teamId: string): Promise<Models.ConsoleRegionList> {
|
||||
const path = `/console/regions`;
|
||||
const params = {
|
||||
teamId
|
||||
|
||||
@@ -2,7 +2,7 @@ import { page } from '$app/stores';
|
||||
import { derived, writable } from 'svelte/store';
|
||||
import type { Models } from '@appwrite.io/console';
|
||||
import type { Tier } from './billing';
|
||||
import type { Plan, RegionList } from '$lib/sdk/billing';
|
||||
import type { Plan } from '$lib/sdk/billing';
|
||||
|
||||
export type OrganizationError = {
|
||||
status: number;
|
||||
@@ -61,4 +61,4 @@ export const organization = derived(page, ($page) => $page.data?.organization as
|
||||
export const currentPlan = derived(page, ($page) => $page.data?.currentPlan as Plan);
|
||||
export const members = derived(page, ($page) => $page.data.members as Models.MembershipList);
|
||||
|
||||
export const regions = writable<RegionList | undefined>(undefined);
|
||||
export const regions = writable<Models.ConsoleRegionList | undefined>(undefined);
|
||||
|
||||
@@ -5,11 +5,12 @@
|
||||
import { sdk } from '$lib/stores/sdk';
|
||||
import { onMount } from 'svelte';
|
||||
import { createProject } from './store';
|
||||
import type { Region } from '$lib/sdk/billing';
|
||||
import { addNotification } from '$lib/stores/notifications';
|
||||
import type { Models } from '@appwrite.io/console';
|
||||
import { page } from '$app/stores';
|
||||
import { regions } from '$lib/stores/organization';
|
||||
import { goto } from '$app/navigation';
|
||||
import { upgradeURL } from '$lib/stores/billing';
|
||||
|
||||
let prefs: Models.Preferences;
|
||||
|
||||
@@ -17,7 +18,7 @@
|
||||
prefs = $page.data.account.prefs;
|
||||
});
|
||||
|
||||
async function notifyRegion(selectedRegion: Region) {
|
||||
async function notifyRegion(selectedRegion: Models.ConsoleRegion) {
|
||||
try {
|
||||
let newPrefs = { ...prefs };
|
||||
newPrefs.notifications ??= [];
|
||||
@@ -37,7 +38,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function unNotifyRegion(selectedRegion: Region) {
|
||||
async function unNotifyRegion(selectedRegion: Models.ConsoleRegion) {
|
||||
try {
|
||||
let newPrefs = { ...prefs };
|
||||
newPrefs.notifications = newPrefs.notifications ?? [];
|
||||
@@ -72,14 +73,12 @@
|
||||
<ul
|
||||
class="grid-box u-margin-block-start-16"
|
||||
style="--p-grid-item-size:12em; --p-grid-item-size-small-screens:12rem; --grid-gap: 1rem;">
|
||||
{#each $regions.regions
|
||||
.filter((r) => r.$id !== 'default')
|
||||
.sort((regionA, regionB) => {
|
||||
if (regionA.disabled >= regionB.disabled) {
|
||||
return 1;
|
||||
}
|
||||
return -1;
|
||||
}) as region, index}
|
||||
{#each $regions.regions.sort((regionA, regionB) => {
|
||||
if (regionA.disabled >= regionB.disabled) {
|
||||
return 1;
|
||||
}
|
||||
return -1;
|
||||
}) as region, index}
|
||||
<li>
|
||||
<RegionCard
|
||||
name="region"
|
||||
@@ -127,6 +126,15 @@
|
||||
flag={region.flag}
|
||||
name={region.name} />
|
||||
{region.name}
|
||||
|
||||
{#if !region.available}
|
||||
<Pill
|
||||
button
|
||||
event="upgrade_from_region_chooser"
|
||||
on:click={() => goto($upgradeURL)}>
|
||||
<span class="text">Upgrade</span>
|
||||
</Pill>
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
</RegionCard>
|
||||
|
||||
Reference in New Issue
Block a user