forked from trent_larson/crowd-funder-for-time-pwa
refactor: defer project loading until MeetingProjectDialog opens
- Move loadProjects() call from created() to handleDialogOpen() - Remove allProjects check from ensureSelectedProjectLoaded() - Projects now load only when dialog is opened, improving initial page load performance - ensureSelectedProjectLoaded() now directly fetches project by handleId when needed
This commit is contained in:
@@ -444,9 +444,6 @@ export default class OnboardMeetingView extends Vue {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
this.allMyDids = await (this as any).$getAllAccountDids();
|
||||
|
||||
// Load projects
|
||||
await this.loadProjects();
|
||||
|
||||
await this.fetchCurrentMeeting();
|
||||
|
||||
// Ensure selected project is loaded if projectLink exists
|
||||
@@ -525,7 +522,6 @@ export default class OnboardMeetingView extends Vue {
|
||||
|
||||
/**
|
||||
* Ensure the selected project is loaded if projectLink exists
|
||||
* Checks allProjects first, then fetches if not found
|
||||
*/
|
||||
async ensureSelectedProjectLoaded(): Promise<void> {
|
||||
const projectLink =
|
||||
@@ -537,16 +533,6 @@ export default class OnboardMeetingView extends Vue {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if already loaded in allProjects
|
||||
const existingProject = this.allProjects.find(
|
||||
(p) => p.handleId === projectLink,
|
||||
);
|
||||
if (existingProject) {
|
||||
this.selectedProjectData = existingProject;
|
||||
return;
|
||||
}
|
||||
|
||||
// Not in allProjects, fetch it
|
||||
await this.fetchProjectByHandleId(projectLink);
|
||||
}
|
||||
|
||||
@@ -991,13 +977,18 @@ export default class OnboardMeetingView extends Vue {
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle dialog open event - stop auto-refresh in MembersList
|
||||
* Handle dialog open event - stop auto-refresh in MembersList and load projects
|
||||
*/
|
||||
handleDialogOpen(): void {
|
||||
async handleDialogOpen(): Promise<void> {
|
||||
const membersList = this.$refs.membersList as MembersList;
|
||||
if (membersList) {
|
||||
membersList.stopAutoRefresh();
|
||||
}
|
||||
|
||||
// Load projects when dialog opens (if not already loaded)
|
||||
if (this.allProjects.length === 0) {
|
||||
await this.loadProjects();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user