Skip to content

Commit 2b18496

Browse files
authored
Merge pull request #1519 from thunderstore-io/09-04-remove_promise.withresolvers_usage_from_package_detail_page
Remove Promise.withResolvers usage from package detail page
2 parents aa78846 + 3a78983 commit 2b18496

File tree

1 file changed

+15
-118
lines changed

1 file changed

+15
-118
lines changed

apps/cyberstorm-remix/app/p/packageListing.tsx

Lines changed: 15 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import {
2424
import "./packageListing.css";
2525
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
2626
import {
27-
ApiError,
2827
fetchPackagePermissions,
2928
packageListingApprove,
3029
packageListingReject,
@@ -75,16 +74,12 @@ import {
7574
getPublicEnvVariables,
7675
getSessionTools,
7776
} from "cyberstorm/security/publicEnvVariables";
78-
import {
79-
getPackagePermissions,
80-
getPackageWiki,
81-
} from "@thunderstore/dapper-ts/src/methods/package";
77+
import { getPackagePermissions } from "@thunderstore/dapper-ts/src/methods/package";
8278
import { useToast } from "@thunderstore/cyberstorm/src/newComponents/Toast/Provider";
8379
import { ApiAction } from "@thunderstore/ts-api-react-actions";
8480
import { TagVariants } from "@thunderstore/cyberstorm-theme/src/components";
8581
import { SelectOption } from "@thunderstore/cyberstorm/src/newComponents/Select/Select";
8682
import { useStrongForm } from "cyberstorm/utils/StrongForm/useStrongForm";
87-
import { isPromise } from "cyberstorm/utils/typeChecks";
8883

8984
export const meta: MetaFunction<typeof loader> = ({ data, location }) => {
9085
return [
@@ -144,21 +139,6 @@ export async function loader({ params }: LoaderFunctionArgs) {
144139
};
145140
});
146141

147-
let wiki: Awaited<ReturnType<typeof getPackageWiki>> | undefined;
148-
149-
try {
150-
wiki = await dapper.getPackageWiki(params.namespaceId, params.packageId);
151-
} catch (error) {
152-
if (error instanceof ApiError) {
153-
if (error.response.status === 404) {
154-
wiki = undefined;
155-
} else {
156-
wiki = undefined;
157-
console.error("Error fetching package wiki:", error);
158-
}
159-
}
160-
}
161-
162142
return {
163143
community: await dapper.getCommunity(params.communityId),
164144
communityFilters: await dapper.getCommunityFilters(params.communityId),
@@ -169,7 +149,6 @@ export async function loader({ params }: LoaderFunctionArgs) {
169149
),
170150
team: await dapper.getTeamDetails(params.namespaceId),
171151
permissions: undefined,
172-
wiki: wiki,
173152
};
174153
}
175154
throw new Response("Package not found", { status: 404 });
@@ -213,7 +192,6 @@ export async function clientLoader({ params }: LoaderFunctionArgs) {
213192
),
214193
team: await dapper.getTeamDetails(params.namespaceId),
215194
permissions: permissionsPromise,
216-
wiki: dapper.getPackageWiki(params.namespaceId, params.packageId),
217195
};
218196
}
219197
throw new Response("Package not found", { status: 404 });
@@ -222,7 +200,7 @@ export async function clientLoader({ params }: LoaderFunctionArgs) {
222200
clientLoader.hydrate = true;
223201

224202
export default function PackageListing() {
225-
const { community, listing, team, permissions, wiki } = useLoaderData<
203+
const { community, listing, team, permissions } = useLoaderData<
226204
typeof loader | typeof clientLoader
227205
>();
228206

@@ -564,41 +542,6 @@ export default function PackageListing() {
564542
</>
565543
);
566544

567-
const canAccessWikiTabPromise = Promise.withResolvers<boolean>();
568-
if (wiki && isPromise(wiki)) {
569-
wiki
570-
.then(async (a) => {
571-
if (a.pages.length > 0) {
572-
canAccessWikiTabPromise.resolve(true);
573-
} else {
574-
if ((await permissions)?.permissions.can_manage) {
575-
canAccessWikiTabPromise.resolve(true);
576-
} else {
577-
canAccessWikiTabPromise.resolve(false);
578-
}
579-
}
580-
})
581-
.catch(async () => {
582-
if ((await permissions)?.permissions.can_manage) {
583-
canAccessWikiTabPromise.resolve(true);
584-
} else {
585-
canAccessWikiTabPromise.resolve(false);
586-
}
587-
});
588-
} else {
589-
if (permissions) {
590-
permissions.then((a) => {
591-
if (a?.permissions.can_manage) {
592-
canAccessWikiTabPromise.resolve(true);
593-
} else {
594-
canAccessWikiTabPromise.resolve(false);
595-
}
596-
});
597-
} else {
598-
canAccessWikiTabPromise.resolve(false);
599-
}
600-
}
601-
602545
return (
603546
<>
604547
<div className="package-community__background">
@@ -761,66 +704,20 @@ export default function PackageListing() {
761704
>
762705
Required ({listing.dependency_count})
763706
</NewLink>
764-
<Suspense
765-
fallback={
766-
<NewLink
767-
key="wiki"
768-
primitiveType="cyberstormLink"
769-
linkId="PackageWiki"
770-
community={listing.community_identifier}
771-
namespace={listing.namespace}
772-
package={listing.name}
773-
aria-current={currentTab === "wiki"}
774-
rootClasses={`tabs-item${
775-
currentTab === "wiki" ? " tabs-item--current" : ""
776-
}`}
777-
disabled={true}
778-
>
779-
Wiki
780-
</NewLink>
781-
}
707+
<NewLink
708+
key="wiki"
709+
primitiveType="cyberstormLink"
710+
linkId="PackageWiki"
711+
community={listing.community_identifier}
712+
namespace={listing.namespace}
713+
package={listing.name}
714+
aria-current={currentTab === "wiki"}
715+
rootClasses={`tabs-item${
716+
currentTab === "wiki" ? " tabs-item--current" : ""
717+
}`}
782718
>
783-
<Await
784-
resolve={canAccessWikiTabPromise.promise}
785-
errorElement={
786-
<NewLink
787-
key="wiki"
788-
primitiveType="cyberstormLink"
789-
linkId="PackageWiki"
790-
community={listing.community_identifier}
791-
namespace={listing.namespace}
792-
package={listing.name}
793-
aria-current={currentTab === "wiki"}
794-
rootClasses={`tabs-item${
795-
currentTab === "wiki" ? " tabs-item--current" : ""
796-
}`}
797-
disabled={true}
798-
>
799-
Wiki
800-
</NewLink>
801-
}
802-
>
803-
{(resolvedValue) => {
804-
return (
805-
<NewLink
806-
key="wiki"
807-
primitiveType="cyberstormLink"
808-
linkId="PackageWiki"
809-
community={listing.community_identifier}
810-
namespace={listing.namespace}
811-
package={listing.name}
812-
aria-current={currentTab === "wiki"}
813-
rootClasses={`tabs-item${
814-
currentTab === "wiki" ? " tabs-item--current" : ""
815-
}`}
816-
disabled={!resolvedValue}
817-
>
818-
Wiki
819-
</NewLink>
820-
);
821-
}}
822-
</Await>
823-
</Suspense>
719+
Wiki
720+
</NewLink>
824721
<NewLink
825722
key="changelog"
826723
primitiveType="cyberstormLink"

0 commit comments

Comments
 (0)