Skip to content

Commit 334540c

Browse files
committed
[dashboard] try using skeletons for loading repo suggestions
1 parent fbe6353 commit 334540c

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

components/dashboard/src/workspaces/Workspaces.tsx

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import { VideoCarousel } from "./VideoCarousel";
4141
import { WorkspaceEntry } from "./WorkspaceEntry";
4242
import { WorkspacesSearchBar } from "./WorkspacesSearchBar";
4343
import { useInstallationConfiguration } from "../data/installation/installation-config-query";
44+
import { SkeletonBlock } from "@podkit/loading/Skeleton";
4445

4546
export const GETTING_STARTED_DISMISSAL_KEY = "workspace-list-getting-started";
4647

@@ -133,8 +134,10 @@ const WorkspacesPage: FunctionComponent = () => {
133134
}
134135
}, [user?.profile?.coachmarksDismissals]);
135136

136-
const { data: userSuggestedRepos } = useSuggestedRepositories({ excludeConfigurations: false });
137-
const { data: orgSuggestedRepos } = useOrgSuggestedRepos();
137+
const { data: userSuggestedRepos, isLoading: isUserSuggestedReposLoading } = useSuggestedRepositories({
138+
excludeConfigurations: false,
139+
});
140+
const { data: orgSuggestedRepos, isLoading: isOrgSuggestedReposLoading } = useOrgSuggestedRepos();
138141

139142
const suggestedRepos = useMemo(() => {
140143
const userSuggestions =
@@ -151,7 +154,7 @@ const WorkspacesPage: FunctionComponent = () => {
151154
});
152155

153156
return [...userSuggestions, ...orgSuggestions].slice(0, 3);
154-
}, [userSuggestedRepos, user, orgSuggestedRepos]);
157+
}, [userSuggestedRepos, orgSuggestedRepos, user?.workspaceAutostartOptions]);
155158

156159
const toggleGettingStarted = useCallback(
157160
(show: boolean) => {
@@ -264,13 +267,23 @@ const WorkspacesPage: FunctionComponent = () => {
264267
</Card>
265268
</div>
266269

267-
{suggestedRepos.length > 0 && (
270+
{(suggestedRepos.length > 0 ||
271+
isUserSuggestedReposLoading ||
272+
isOrgSuggestedReposLoading) && (
268273
<>
269274
<Subheading className="font-semibold text-pk-content-primary mb-2 app-container">
270275
Suggested
271276
</Subheading>
272277

273278
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 lg:px-28 px-4">
279+
{suggestedRepos.length === 0 &&
280+
(isUserSuggestedReposLoading || isOrgSuggestedReposLoading) && (
281+
<>
282+
<SkeletonBlock className="w-full h-24" ready={false} />
283+
<SkeletonBlock className="w-full h-24" ready={false} />
284+
<SkeletonBlock className="w-full h-24" ready={false} />
285+
</>
286+
)}
274287
{suggestedRepos.map((repo) => {
275288
const isOrgSuggested =
276289
(repo as SuggestedOrgRepository).orgSuggested ?? false;

0 commit comments

Comments
 (0)