@@ -33,6 +39,7 @@ export function EcosystemPartnersSection({
ecosystem={ecosystem}
authToken={authToken}
teamSlug={teamSlug}
+ teamId={teamId}
/>
);
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/server/integration-permissions-section.tsx b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/server/integration-permissions-section.tsx
index 8e8359af18a..e7869f4f7a3 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/server/integration-permissions-section.tsx
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/server/integration-permissions-section.tsx
@@ -7,7 +7,8 @@ import {
export function IntegrationPermissionsSection({
ecosystem,
authToken,
-}: { ecosystem?: Ecosystem; authToken: string }) {
+ teamId,
+}: { ecosystem?: Ecosystem; authToken: string; teamId: string }) {
return (
@@ -27,6 +28,7 @@ export function IntegrationPermissionsSection({
) : (
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/server/partners-table.tsx b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/server/partners-table.tsx
index d74d9d76e9a..b606b51fc04 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/server/partners-table.tsx
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/server/partners-table.tsx
@@ -25,14 +25,17 @@ export function PartnersTable({
ecosystem,
authToken,
teamSlug,
+ teamId,
}: {
ecosystem: Ecosystem;
authToken: string;
teamSlug: string;
+ teamId: string;
}) {
const { partners, isPending } = usePartners({
ecosystem,
authToken,
+ teamId,
});
if (isPending) {
@@ -68,6 +71,7 @@ export function PartnersTable({
ecosystem={ecosystem}
authToken={authToken}
teamSlug={teamSlug}
+ teamId={teamId}
/>
))}
@@ -81,12 +85,14 @@ function PartnerRow(props: {
ecosystem: Ecosystem;
teamSlug: string;
authToken: string;
+ teamId: string;
}) {
const router = useDashboardRouter();
const { mutateAsync: deletePartner, isPending: isDeleting } =
useDeletePartner(
{
authToken: props.authToken,
+ teamId: props.teamId,
},
{
onError: (error) => {
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/fetchPartnerDetails.ts b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/fetchPartnerDetails.ts
index 395683a67ee..f9d38c1f5d6 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/fetchPartnerDetails.ts
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/fetchPartnerDetails.ts
@@ -4,8 +4,9 @@ export async function fetchPartnerDetails(args: {
authToken: string;
ecosystem: Ecosystem;
partnerId: string;
+ teamId: string;
}): Promise {
- const { authToken, ecosystem, partnerId } = args;
+ const { authToken, ecosystem, partnerId, teamId } = args;
try {
const response = await fetch(
@@ -14,6 +15,7 @@ export async function fetchPartnerDetails(args: {
method: "GET",
headers: {
Authorization: `Bearer ${authToken}`,
+ "x-thirdweb-team-id": teamId,
},
},
);
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/fetchPartners.ts b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/fetchPartners.ts
index 32c6fa54b0c..cbdbd94ac50 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/fetchPartners.ts
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/fetchPartners.ts
@@ -6,13 +6,16 @@ import type { Ecosystem, Partner } from "../../../../types";
export async function fetchPartners({
ecosystem,
authToken,
+ teamId,
}: {
ecosystem: Ecosystem;
authToken: string;
+ teamId: string;
}): Promise {
const res = await fetch(`${ecosystem.url}/${ecosystem.id}/partners`, {
headers: {
Authorization: `Bearer ${authToken}`,
+ "x-thirdweb-team-id": teamId,
},
next: {
revalidate: 0,
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-add-partner.ts b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-add-partner.ts
index b1e43a50c70..85d25956e20 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-add-partner.ts
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-add-partner.ts
@@ -16,13 +16,14 @@ type AddPartnerParams = {
export function useAddPartner(
params: {
authToken: string;
+ teamId: string;
},
options?: Omit<
UseMutationOptions,
"mutationFn"
>,
) {
- const { authToken } = params;
+ const { authToken, teamId } = params;
const { onSuccess, ...queryOptions } = options || {};
const queryClient = useQueryClient();
@@ -37,6 +38,7 @@ export function useAddPartner(
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${authToken}`,
+ "x-thirdweb-team-id": teamId,
},
body: JSON.stringify({
name: params.name,
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-delete-partner.ts b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-delete-partner.ts
index 2ca95a56d5f..cfe76646419 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-delete-partner.ts
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-delete-partner.ts
@@ -13,13 +13,14 @@ type DeletePartnerParams = {
export function useDeletePartner(
params: {
authToken: string;
+ teamId: string;
},
options?: Omit<
UseMutationOptions,
"mutationFn"
>,
) {
- const { authToken } = params;
+ const { authToken, teamId } = params;
const { onSuccess, ...queryOptions } = options || {};
const queryClient = useQueryClient();
@@ -33,6 +34,7 @@ export function useDeletePartner(
{
method: "DELETE",
headers: {
+ "x-thirdweb-team-id": teamId,
Authorization: `Bearer ${authToken}`,
},
},
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-update-ecosystem.ts b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-update-ecosystem.ts
index e120c535722..e639dc9fd0e 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-update-ecosystem.ts
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-update-ecosystem.ts
@@ -8,10 +8,11 @@ import type { Ecosystem } from "../../../../types";
export function useUpdateEcosystem(
params: {
authToken: string;
+ teamId: string;
},
options?: Omit, "mutationFn">,
) {
- const { authToken } = params;
+ const { authToken, teamId } = params;
const { onSuccess, ...queryOptions } = options || {};
const queryClient = useQueryClient();
@@ -22,6 +23,7 @@ export function useUpdateEcosystem(
method: "PATCH",
headers: {
"Content-Type": "application/json",
+ "x-thirdweb-team-id": teamId,
Authorization: `Bearer ${authToken}`,
},
body: JSON.stringify(params),
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-update-partner.ts b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-update-partner.ts
index 92a7ee58e30..94135cffa57 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-update-partner.ts
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/hooks/use-update-partner.ts
@@ -22,13 +22,14 @@ type UpdatePartnerParams = {
export function useUpdatePartner(
params: {
authToken: string;
+ teamId: string;
},
options?: Omit<
UseMutationOptions,
"mutationFn"
>,
) {
- const { authToken } = params;
+ const { authToken, teamId } = params;
const { onSuccess, ...queryOptions } = options || {};
const queryClient = useQueryClient();
@@ -43,6 +44,7 @@ export function useUpdatePartner(
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${authToken}`,
+ "x-thirdweb-team-id": teamId,
},
body: JSON.stringify({
name: params.name,
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/partners/[partner_id]/edit/page.tsx b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/partners/[partner_id]/edit/page.tsx
index 2905f97f030..90e198d6f06 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/partners/[partner_id]/edit/page.tsx
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/partners/[partner_id]/edit/page.tsx
@@ -1,4 +1,6 @@
import {} from "@/components/ui/breadcrumb";
+import { notFound } from "next/navigation";
+import { getTeamBySlug } from "../../../../../../../../../../../../@/api/team";
import { getAuthToken } from "../../../../../../../../../../../api/lib/getAuthToken";
import { loginRedirect } from "../../../../../../../../../../../login/loginRedirect";
import { UpdatePartnerForm } from "../../../components/client/update-partner-form.client";
@@ -11,12 +13,19 @@ export default async function EditPartnerPage({
params: Promise<{ slug: string; team_slug: string; partner_id: string }>;
}) {
const { slug, team_slug, partner_id } = await params;
- const authToken = await getAuthToken();
+ const [authToken, team] = await Promise.all([
+ getAuthToken(),
+ getTeamBySlug(team_slug),
+ ]);
if (!authToken) {
loginRedirect(`/team/${team_slug}/~/ecosystem/${slug}/configuration`);
}
+ if (!team) {
+ notFound();
+ }
+
const teamSlug = team_slug;
const ecosystemSlug = slug;
const partnerId = partner_id;
@@ -29,18 +38,12 @@ export default async function EditPartnerPage({
});
try {
- // TODO re-enable this once IAW service is re deployed
const partner = await fetchPartnerDetails({
ecosystem,
partnerId,
authToken,
+ teamId: team.id,
});
- // const partners = await fetchPartners({
- // ecosystem,
- // authToken,
- // });
-
- // const partner = partners.find((p) => p.id === partnerId);
if (!partner) {
return (
@@ -65,6 +68,7 @@ export default async function EditPartnerPage({
ecosystem={ecosystem}
partner={partner}
authToken={authToken}
+ teamId={team.id}
/>
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/hooks/use-partners.ts b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/hooks/use-partners.ts
index 6a947ac5fc8..545a093ba75 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/hooks/use-partners.ts
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/hooks/use-partners.ts
@@ -5,11 +5,12 @@ import { fetchPartners } from "../configuration/hooks/fetchPartners";
export function usePartners({
ecosystem,
authToken,
-}: { ecosystem: Ecosystem; authToken: string }) {
+ teamId,
+}: { ecosystem: Ecosystem; authToken: string; teamId: string }) {
const partnersQuery = useQuery({
queryKey: ["ecosystem", ecosystem.id, "partners"],
queryFn: async () => {
- return fetchPartners({ ecosystem, authToken });
+ return fetchPartners({ ecosystem, authToken, teamId });
},
retry: false,
});
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/page.tsx b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/page.tsx
index 3b11a7ad75f..7dc482829f4 100644
--- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/page.tsx
+++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/page.tsx
@@ -1,3 +1,5 @@
+import { notFound } from "next/navigation";
+import { getTeamBySlug } from "../../../../../../../../@/api/team";
import { getAuthToken } from "../../../../../../../api/lib/getAuthToken";
import { loginRedirect } from "../../../../../../../login/loginRedirect";
import { EcosystemPermissionsPage } from "./configuration/components/client/EcosystemPermissionsPage";
@@ -6,11 +8,24 @@ export default async function Page(props: {
params: Promise<{ slug: string; team_slug: string }>;
}) {
const params = await props.params;
- const authToken = await getAuthToken();
+ const [authToken, team] = await Promise.all([
+ getAuthToken(),
+ getTeamBySlug(params.team_slug),
+ ]);
+
+ if (!team) {
+ notFound();
+ }
if (!authToken) {
loginRedirect(`/team/${params.team_slug}/~/ecosystem/${params.slug}`);
}
- return