address comments.

This commit is contained in:
Darshan
2025-06-08 12:26:36 +05:30
parent 4e81cc6b7a
commit 405a5a80d2
9 changed files with 38 additions and 44 deletions
+10 -10
View File
@@ -68,7 +68,7 @@
export let organizations: Organization[] = [];
export let currentProject: Models.Project | null = null;
export let projectsPromise: Promise<Models.ProjectList> = Promise.resolve(loadedProjects);
export let projects: Promise<Models.ProjectList> = Promise.resolve(loadedProjects);
let projectsBottomSheetOpen = false;
let organisationBottomSheetOpen = false;
@@ -99,15 +99,15 @@
}
};
async function createProjectsBottomSheet(): Promise<SheetMenu> {
async function createProjectsBottomSheet(organization: Organization): Promise<SheetMenu> {
isLoadingProjects = true;
loadedProjects = await projectsPromise;
loadedProjects = await projects;
isLoadingProjects = false;
const createProjectItem = {
name: 'Create project',
trailingIcon: IconPlus,
href: `${base}/organization-${selectedOrg?.$id}?create-project`
href: `${base}/organization-${organization?.$id}?create-project`
};
if (loadedProjects.total > 1 && selectedOrg) {
@@ -135,15 +135,15 @@
};
}
function createOrganizationBottomSheet() {
return !selectedOrg
function createOrganizationBottomSheet(organization: Organization) {
return !organization
? switchOrganization
: ({
top: {
items: [
{
name: 'Organization overview',
href: `${base}/organization-${selectedOrg?.$id}`
href: `${base}/organization-${organization?.$id}`
}
]
},
@@ -177,11 +177,11 @@
}
}
$: projectsBottomSheet = createProjectsBottomSheet();
$: selectedOrg = organizations.find((org) => org.isSelected);
$: organizationsBottomSheet = createOrganizationBottomSheet();
$: projectsBottomSheet = createProjectsBottomSheet(selectedOrg);
$: selectedOrg = organizations.find((organization) => organization.isSelected);
$: organizationsBottomSheet = createOrganizationBottomSheet(selectedOrg);
</script>
<svelte:window on:resize={onResize} />
+2 -2
View File
@@ -107,7 +107,7 @@
export let sideBarIsOpen: $$Props['sideBarIsOpen'] = false;
export let showAccountMenu = false;
export let currentProject: Models.Project = undefined;
export let projectsPromise: Promise<Models.ProjectList> = undefined;
export let projects: Promise<Models.ProjectList> = undefined;
let activeTheme = $app.theme;
let shouldAnimateThemeToggle = false;
@@ -139,7 +139,7 @@
class="only-desktop">
<img src={logo.src} alt={logo.alt} />
</a>
<Breadcrumbs {organizations} {projectsPromise} {currentProject} />
<Breadcrumbs {organizations} {projects} {currentProject} />
{#if page.route?.id?.includes('project-') && currentProject && currentProject.pingCount === 0}
<div class="only-desktop" style:margin-inline-start="-16px">
<Button.Anchor
+3 -6
View File
@@ -21,11 +21,8 @@
export let showHeader = true;
export let showFooter = true;
export let showSideNavigation = false;
export let selectedProject: Models.Project | null = null;
export let projectsPromise: Promise<Models.ProjectList> = Promise.resolve({
total: 0,
projects: []
});
export let selectedProject: Models.Project = null;
export let projects: Promise<Models.ProjectList> = undefined;
let yOnMenuOpen: number;
let showContentTransition = false;
@@ -107,7 +104,7 @@
};
}),
projectsPromise: projectsPromise,
projects: projects,
currentProject: selectedProject
};
+9 -13
View File
@@ -314,18 +314,14 @@
$: checkForUsageLimits($organization);
function getProjectsPromise(): Promise<Models.ProjectList> {
return sdk.forConsole.projects.list([
Query.equal(
'teamId',
data.currentOrgId ?? currentOrganizationId ?? page.params.organization
),
Query.limit(5),
Query.orderDesc('$updatedAt')
]);
}
$: projectsPromise = getProjectsPromise();
$: projects = sdk.forConsole.projects.list([
Query.equal(
'teamId',
data.currentOrgId ?? currentOrganizationId ?? page.params.organization
),
Query.limit(5),
Query.orderDesc('$updatedAt')
]);
$: if ($requestedMigration) {
openMigrationWizard();
@@ -347,7 +343,7 @@
!page.url.pathname.includes('/console/onboarding')}
showHeader={!page.url.pathname.includes('/console/onboarding/create-project')}
showFooter={!page.url.pathname.includes('/console/onboarding/create-project')}
{projectsPromise}
{projects}
selectedProject={page.data?.project}>
<!-- <Header slot="header" />-->
<slot />
+1 -1
View File
@@ -15,7 +15,7 @@ export const load: LayoutLoad = async ({ depends, parent }) => {
const [preferences, plansArray, organizations, versionData, consoleVariables] =
await Promise.all([
sdk.forConsole.account.getPrefs(),
isCloud ? sdk.forConsole.billing.getPlansInfo() : Promise.resolve(null),
isCloud ? sdk.forConsole.billing.getPlansInfo() : null,
isCloud ? sdk.forConsole.billing.listOrganization() : sdk.forConsole.teams.list(),
fetch(`${endpoint}/health/version`, {
headers: { 'X-Appwrite-Project': project }
@@ -34,7 +34,7 @@
$: projects = (data.organizationUsage as OrganizationUsage).projects;
let usageProjects: { [key: string]: UsageProjectInfo } = {};
let usageProjects: Record<string, UsageProjectInfo> = {};
$: legendData = [
{
@@ -53,7 +53,7 @@
}
];
onMount(async () => (usageProjects = await data.projectsPromise));
onMount(async () => (usageProjects = await data.projects));
</script>
<Container>
@@ -64,12 +64,12 @@ export const load: PageLoad = async ({ params, parent }) => {
currentInvoice,
organizationMembers,
organizationUsage: usage,
projectsPromise: getUsageProjectsPromise(usage)
projects: getUsageProjects(usage)
};
};
// all this to get the project's name and region!
function getUsageProjectsPromise(usage: OrganizationUsage) {
function getUsageProjects(usage: OrganizationUsage) {
return (async () => {
const projects: { [key: string]: UsageProjectInfo } = {};
@@ -25,7 +25,7 @@
export let projects: OrganizationUsage['projects'];
export let metric: Metric | undefined = undefined;
export let estimate: Estimate | undefined = undefined;
export let usageProjects: { [key: string]: UsageProjectInfo } = {};
export let usageProjects: Record<string, UsageProjectInfo> = {};
export let databaseOperationMetric: DatabaseOperationMetric[] | undefined = undefined;
function getMetricTitle(metric: Metric): string {
@@ -5,18 +5,19 @@ import type { PageLoad } from './$types';
import { selectedTab } from './store';
export const load: PageLoad = async ({ params }) => {
let subroute: string;
const tab = get(selectedTab);
switch (tab) {
case 'keys':
case 'dev-keys':
subroute = tab;
break;
return redirect(
302,
`${base}/project-${params.region}-${params.project}/overview/${tab}`
);
default:
subroute = 'platforms';
break;
return redirect(
302,
`${base}/project-${params.region}-${params.project}/overview/platforms`
);
}
redirect(302, `${base}/project-${params.region}-${params.project}/overview/${subroute}`);
};