+ {
+ onUpdate?.({
+ ...support,
+ message,
+ anonymous,
+ });
+ }}
+/>
\ No newline at end of file
diff --git a/src/components/checkout/CommentModal.svelte b/src/components/checkout/CommentModal.svelte
new file mode 100644
index 00000000..af5e1685
--- /dev/null
+++ b/src/components/checkout/CommentModal.svelte
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/checkout/FeedbackForm.svelte b/src/components/checkout/FeedbackForm.svelte
index 10e847e5..4fe43dd4 100644
--- a/src/components/checkout/FeedbackForm.svelte
+++ b/src/components/checkout/FeedbackForm.svelte
@@ -1,80 +1,96 @@
-
-
-
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 9cfe6a5a..48ddfefd 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -174,6 +174,7 @@
"delete": "Borrar",
"continue": "Continuar",
"back": "Volver",
+ "learnMore": "Saber más",
"cancel": "Cancelar",
"publish": "Publicar",
"preview": "Vista previa",
@@ -874,12 +875,10 @@
},
"banner": {
"donator": {
- "description": "Goteo pertenece a la Fundación Platoniq. Al colaborar en una campaña tu dinero será custodiado por Platoniq y donado a {{owner}} en caso de llegar a los objetivos de éxito marcados.",
- "learnMore": "Saber más."
+ "description": "Goteo pertenece a la Fundación Platoniq. Al colaborar en una campaña tu dinero será custodiado por Platoniq y donado a {{owner}} en caso de llegar a los objetivos de éxito marcados."
},
"certificate": {
- "description": "Al colaborar con un proyecto impulsado en Goteo puedes solicitar un certificado de donación. Así, te deduces hasta un 80% de lo que hayas aportado en tu próxima declaración de la renta.",
- "learnMore": "Saber más."
+ "description": "Al colaborar con un proyecto impulsado en Goteo puedes solicitar un certificado de donación. Así, te deduces hasta un 80% de lo que hayas aportado en tu próxima declaración de la renta."
}
},
"langNotAvailable": "El idioma seleccionado \"{{lang}}\" no está disponible para este proyecto. Mostrando contenido en el idioma disponible.",
From 215416c6308b401c33a86f0ffef6b9d2057cbead Mon Sep 17 00:00:00 2001
From: Dayv1dDev
Date: Thu, 13 Aug 2026 17:46:26 +0200
Subject: [PATCH 04/17] fix: remove CommentCard checkbox id due to an error
---
src/components/checkout/CommentCard.svelte | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/components/checkout/CommentCard.svelte b/src/components/checkout/CommentCard.svelte
index 5a7655d3..32e72019 100644
--- a/src/components/checkout/CommentCard.svelte
+++ b/src/components/checkout/CommentCard.svelte
@@ -51,14 +51,11 @@
-
-
-
+
\ No newline at end of file
+/>
From ee5c182c15df39b95d18fc7ccac9c1a13fa1744a Mon Sep 17 00:00:00 2001
From: Dayv1dDev
Date: Thu, 13 Aug 2026 17:54:13 +0200
Subject: [PATCH 05/17] chore: pnpm exec format
---
src/components/checkout/CommentModal.svelte | 5 ++---
src/components/checkout/FeedbackForm.svelte | 2 +-
.../icons/payment/CreditCardIcon.svelte | 3 ++-
src/components/icons/payment/PaypalIcon.svelte | 9 ++++++---
src/components/icons/payment/StripeIcon.svelte | 18 ++++++++++++------
5 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/src/components/checkout/CommentModal.svelte b/src/components/checkout/CommentModal.svelte
index af5e1685..9bd37948 100644
--- a/src/components/checkout/CommentModal.svelte
+++ b/src/components/checkout/CommentModal.svelte
@@ -70,10 +70,9 @@
class="border-secondary text-content h-30 w-full resize-none rounded-lg border bg-white p-4 text-base/6 font-normal"
id="comment"
bind:value={message}
- placeholder={$t("payment.page-approved.form-review.comment-modal.label")}
- >
+ placeholder={$t("payment.page-approved.form-review.comment-modal.label")}>
-
\ No newline at end of file
+
diff --git a/src/components/checkout/FeedbackForm.svelte b/src/components/checkout/FeedbackForm.svelte
index 4fe43dd4..0785dae5 100644
--- a/src/components/checkout/FeedbackForm.svelte
+++ b/src/components/checkout/FeedbackForm.svelte
@@ -65,7 +65,7 @@
-
+
{#each feedbackItems() as { project, support }, index}
diff --git a/src/components/icons/payment/CreditCardIcon.svelte b/src/components/icons/payment/CreditCardIcon.svelte
index 42f5d54d..882b3a59 100644
--- a/src/components/icons/payment/CreditCardIcon.svelte
+++ b/src/components/icons/payment/CreditCardIcon.svelte
@@ -3,5 +3,6 @@
fill-rule="evenodd"
clip-rule="evenodd"
d="M3 2C2.44772 2 2 2.44772 2 3V6H24V3C24 2.44772 23.5523 2 23 2H3ZM26 3C26 1.34315 24.6569 0 23 0H3C1.34315 0 0 1.34315 0 3V19C0 20.6569 1.34315 22 3 22H23C24.6569 22 26 20.6569 26 19V3ZM24 10V19C24 19.5523 23.5523 20 23 20H3C2.44772 20 2 19.5523 2 19V10H24ZM4 17C4 16.4477 4.44772 16 5 16H13C13.5523 16 14 16.4477 14 17C14 17.5523 13.5523 18 13 18H5C4.44772 18 4 17.5523 4 17Z"
- fill="currentColor">
+ fill="currentColor"
+ >
diff --git a/src/components/icons/payment/PaypalIcon.svelte b/src/components/icons/payment/PaypalIcon.svelte
index e1889a5c..021b8f11 100644
--- a/src/components/icons/payment/PaypalIcon.svelte
+++ b/src/components/icons/payment/PaypalIcon.svelte
@@ -1,11 +1,14 @@
diff --git a/src/components/icons/payment/StripeIcon.svelte b/src/components/icons/payment/StripeIcon.svelte
index 5bd7fe32..4b458676 100644
--- a/src/components/icons/payment/StripeIcon.svelte
+++ b/src/components/icons/payment/StripeIcon.svelte
@@ -4,33 +4,39 @@
fill-rule="evenodd"
clip-rule="evenodd"
d="M76.9965 16.5291C76.9965 11.062 74.3483 6.74805 69.2869 6.74805C64.2042 6.74805 61.1289 11.062 61.1289 16.4864C61.1289 22.9146 64.7594 26.1608 69.9703 26.1608C72.5117 26.1608 74.4338 25.5841 75.886 24.7726V20.5014C74.4338 21.2275 72.768 21.676 70.6537 21.676C68.5822 21.676 66.7456 20.9499 66.5106 18.4298H76.9538C76.9538 18.1522 76.9965 17.0417 76.9965 16.5291ZM66.4466 14.5003C66.4466 12.0871 67.9201 11.0833 69.2656 11.0833C70.5683 11.0833 71.9565 12.0871 71.9565 14.5003H66.4466Z"
- fill="#635BFF">
+ fill="#635BFF"
+ >
+ fill="#635BFF"
+ >
+ fill="#635BFF"
+ >
+ fill="#635BFF"
+ >
+ fill="#635BFF"
+ >
+ fill="#635BFF"
+ >
From 02172b460493e56467f265a2920949e5973c04e9 Mon Sep 17 00:00:00 2001
From: Daniel Subiabre
Date: Fri, 14 Aug 2026 15:28:53 +0200
Subject: [PATCH 06/17] feat: updated sdk from openapi command
---
src/openapi/client/paths.gen.ts | 4 +-
src/openapi/client/sdk.gen.ts | 20 ++--
src/openapi/client/types.gen.ts | 201 +++++++++++++++++++++-----------
3 files changed, 148 insertions(+), 77 deletions(-)
diff --git a/src/openapi/client/paths.gen.ts b/src/openapi/client/paths.gen.ts
index b574e83d..0bb5704e 100644
--- a/src/openapi/client/paths.gen.ts
+++ b/src/openapi/client/paths.gen.ts
@@ -16,9 +16,9 @@ export const apiCategoriesGetCollectionUrl = '/v4/categories';
export const apiCategoriesPostUrl = '/v4/categories';
-export const apiCategoriesIdDeleteUrl = '/v4/categories/{id}';
+export const apiCategoriesIdOrSlugGetUrl = '/v4/categories/{idOrSlug}';
-export const apiCategoriesIdGetUrl = '/v4/categories/{id}';
+export const apiCategoriesIdDeleteUrl = '/v4/categories/{id}';
export const apiCategoriesIdPatchUrl = '/v4/categories/{id}';
diff --git a/src/openapi/client/sdk.gen.ts b/src/openapi/client/sdk.gen.ts
index 17bb4f01..ffd83085 100644
--- a/src/openapi/client/sdk.gen.ts
+++ b/src/openapi/client/sdk.gen.ts
@@ -1,7 +1,7 @@
// This file is auto-generated by @hey-api/openapi-ts
import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch';
-import type { ApiAccountingsGetCollectionData, ApiAccountingsGetCollectionResponses, ApiAccountingsIdGetData, ApiAccountingsIdGetResponses, ApiAccountingsIdGetErrors, ApiAccountingsIdPatchData, ApiAccountingsIdPatchResponses, ApiAccountingsIdPatchErrors, ApiAccountingBalancePointsGetCollectionData, ApiAccountingBalancePointsGetCollectionResponses, ApiAccountingTransactionsGetCollectionData, ApiAccountingTransactionsGetCollectionResponses, ApiAccountingTransactionsIdGetData, ApiAccountingTransactionsIdGetResponses, ApiAccountingTransactionsIdGetErrors, ApiCategoriesGetCollectionData, ApiCategoriesGetCollectionResponses, ApiCategoriesPostData, ApiCategoriesPostResponses, ApiCategoriesPostErrors, ApiCategoriesIdDeleteData, ApiCategoriesIdDeleteResponses, ApiCategoriesIdDeleteErrors, ApiCategoriesIdGetData, ApiCategoriesIdGetResponses, ApiCategoriesIdGetErrors, ApiCategoriesIdPatchData, ApiCategoriesIdPatchResponses, ApiCategoriesIdPatchErrors, ApiGatewaysGetCollectionData, ApiGatewaysGetCollectionResponses, ApiGatewaysIdGetData, ApiGatewaysIdGetResponses, ApiGatewaysIdGetErrors, ApiGatewayChargesGetCollectionData, ApiGatewayChargesGetCollectionResponses, ApiGatewayChargestotalsGetCollectionData, ApiGatewayChargestotalsGetCollectionResponses, ApiGatewayChargesIdGetData, ApiGatewayChargesIdGetResponses, ApiGatewayChargesIdGetErrors, ApiGatewayChargesIdPatchData, ApiGatewayChargesIdPatchResponses, ApiGatewayChargesIdPatchErrors, ApiGatewayCheckoutsGetCollectionData, ApiGatewayCheckoutsGetCollectionResponses, ApiGatewayCheckoutsPostData, ApiGatewayCheckoutsPostResponses, ApiGatewayCheckoutsPostErrors, ApiGatewayCheckoutsIdGetData, ApiGatewayCheckoutsIdGetResponses, ApiGatewayCheckoutsIdGetErrors, ApiGatewayCheckoutsIdPatchData, ApiGatewayCheckoutsIdPatchResponses, ApiGatewayCheckoutsIdPatchErrors, ApiMatchCallsGetCollectionData, ApiMatchCallsGetCollectionResponses, ApiMatchCallsPostData, ApiMatchCallsPostResponses, ApiMatchCallsPostErrors, ApiMatchCallsIdDeleteData, ApiMatchCallsIdDeleteResponses, ApiMatchCallsIdDeleteErrors, ApiMatchCallsIdGetData, ApiMatchCallsIdGetResponses, ApiMatchCallsIdGetErrors, ApiMatchCallsIdPatchData, ApiMatchCallsIdPatchResponses, ApiMatchCallsIdPatchErrors, ApiMatchCallSubmissionsGetCollectionData, ApiMatchCallSubmissionsGetCollectionResponses, ApiMatchCallSubmissionsPostData, ApiMatchCallSubmissionsPostResponses, ApiMatchCallSubmissionsPostErrors, ApiMatchCallSubmissionsIdGetData, ApiMatchCallSubmissionsIdGetResponses, ApiMatchCallSubmissionsIdGetErrors, ApiMatchCallSubmissionsIdPatchData, ApiMatchCallSubmissionsIdPatchResponses, ApiMatchCallSubmissionsIdPatchErrors, ApiMatchFormulasGetCollectionData, ApiMatchFormulasGetCollectionResponses, ApiMatchFormulasNameGetData, ApiMatchFormulasNameGetResponses, ApiMatchFormulasNameGetErrors, ApiMatchRulesGetCollectionData, ApiMatchRulesGetCollectionResponses, ApiMatchRulesNameGetData, ApiMatchRulesNameGetResponses, ApiMatchRulesNameGetErrors, ApiMatchStrategiesGetCollectionData, ApiMatchStrategiesGetCollectionResponses, ApiMatchStrategiesPostData, ApiMatchStrategiesPostResponses, ApiMatchStrategiesPostErrors, ApiMatchStrategiesIdDeleteData, ApiMatchStrategiesIdDeleteResponses, ApiMatchStrategiesIdDeleteErrors, ApiMatchStrategiesIdGetData, ApiMatchStrategiesIdGetResponses, ApiMatchStrategiesIdGetErrors, ApiMatchStrategiesIdPatchData, ApiMatchStrategiesIdPatchResponses, ApiMatchStrategiesIdPatchErrors, ApiUsersIdorganizationGetData, ApiUsersIdorganizationGetResponses, ApiUsersIdorganizationGetErrors, ApiUsersIdorganizationPatchData, ApiUsersIdorganizationPatchResponses, ApiUsersIdorganizationPatchErrors, ApiUsersIdpersonGetData, ApiUsersIdpersonGetResponses, ApiUsersIdpersonGetErrors, ApiUsersIdpersonPatchData, ApiUsersIdpersonPatchResponses, ApiUsersIdpersonPatchErrors, ApiPingGetData, ApiPingGetResponses, ApiPingGetErrors, ApiProjectsGetCollectionData, ApiProjectsGetCollectionResponses, ApiProjectsPostData, ApiProjectsPostResponses, ApiProjectsPostErrors, ApiProjectsIdOrSlugGetData, ApiProjectsIdOrSlugGetResponses, ApiProjectsIdOrSlugGetErrors, ApiProjectsIdDeleteData, ApiProjectsIdDeleteResponses, ApiProjectsIdDeleteErrors, ApiProjectsIdPatchData, ApiProjectsIdPatchResponses, ApiProjectsIdPatchErrors, ApiProjectBudgetItemsGetCollectionData, ApiProjectBudgetItemsGetCollectionResponses, ApiProjectBudgetItemsPostData, ApiProjectBudgetItemsPostResponses, ApiProjectBudgetItemsPostErrors, ApiProjectBudgetItemsIdDeleteData, ApiProjectBudgetItemsIdDeleteResponses, ApiProjectBudgetItemsIdDeleteErrors, ApiProjectBudgetItemsIdGetData, ApiProjectBudgetItemsIdGetResponses, ApiProjectBudgetItemsIdGetErrors, ApiProjectBudgetItemsIdPatchData, ApiProjectBudgetItemsIdPatchResponses, ApiProjectBudgetItemsIdPatchErrors, ApiProjectCollaborationsGetCollectionData, ApiProjectCollaborationsGetCollectionResponses, ApiProjectCollaborationsPostData, ApiProjectCollaborationsPostResponses, ApiProjectCollaborationsPostErrors, ApiProjectCollaborationsIdDeleteData, ApiProjectCollaborationsIdDeleteResponses, ApiProjectCollaborationsIdDeleteErrors, ApiProjectCollaborationsIdGetData, ApiProjectCollaborationsIdGetResponses, ApiProjectCollaborationsIdGetErrors, ApiProjectCollaborationsIdPatchData, ApiProjectCollaborationsIdPatchResponses, ApiProjectCollaborationsIdPatchErrors, ApiProjectRewardsGetCollectionData, ApiProjectRewardsGetCollectionResponses, ApiProjectRewardsPostData, ApiProjectRewardsPostResponses, ApiProjectRewardsPostErrors, ApiProjectRewardsIdDeleteData, ApiProjectRewardsIdDeleteResponses, ApiProjectRewardsIdDeleteErrors, ApiProjectRewardsIdGetData, ApiProjectRewardsIdGetResponses, ApiProjectRewardsIdGetErrors, ApiProjectRewardsIdPatchData, ApiProjectRewardsIdPatchResponses, ApiProjectRewardsIdPatchErrors, ApiProjectRewardClaimsGetCollectionData, ApiProjectRewardClaimsGetCollectionResponses, ApiProjectRewardClaimsPostData, ApiProjectRewardClaimsPostResponses, ApiProjectRewardClaimsPostErrors, ApiProjectRewardClaimsIdDeleteData, ApiProjectRewardClaimsIdDeleteResponses, ApiProjectRewardClaimsIdDeleteErrors, ApiProjectRewardClaimsIdGetData, ApiProjectRewardClaimsIdGetResponses, ApiProjectRewardClaimsIdGetErrors, ApiProjectSupportsGetCollectionData, ApiProjectSupportsGetCollectionResponses, ApiProjectSupportsmoneyTotalGetCollectionData, ApiProjectSupportsmoneyTotalGetCollectionResponses, ApiProjectSupportsIdGetData, ApiProjectSupportsIdGetResponses, ApiProjectSupportsIdGetErrors, ApiProjectSupportsIdPatchData, ApiProjectSupportsIdPatchResponses, ApiProjectSupportsIdPatchErrors, ApiProjectUpdatesGetCollectionData, ApiProjectUpdatesGetCollectionResponses, ApiProjectUpdatesPostData, ApiProjectUpdatesPostResponses, ApiProjectUpdatesPostErrors, ApiProjectUpdatesIdDeleteData, ApiProjectUpdatesIdDeleteResponses, ApiProjectUpdatesIdDeleteErrors, ApiProjectUpdatesIdGetData, ApiProjectUpdatesIdGetResponses, ApiProjectUpdatesIdGetErrors, ApiProjectUpdatesIdPatchData, ApiProjectUpdatesIdPatchResponses, ApiProjectUpdatesIdPatchErrors, ApiTipjarsGetCollectionData, ApiTipjarsGetCollectionResponses, ApiTipjarsPostData, ApiTipjarsPostResponses, ApiTipjarsPostErrors, ApiTipjarsIdDeleteData, ApiTipjarsIdDeleteResponses, ApiTipjarsIdDeleteErrors, ApiTipjarsIdGetData, ApiTipjarsIdGetResponses, ApiTipjarsIdGetErrors, ApiTipjarsIdPatchData, ApiTipjarsIdPatchResponses, ApiTipjarsIdPatchErrors, ApiUsersGetCollectionData, ApiUsersGetCollectionResponses, ApiUsersPostData, ApiUsersPostResponses, ApiUsersPostErrors, ApiUsersIdOrHandleGetData, ApiUsersIdOrHandleGetResponses, ApiUsersIdOrHandleGetErrors, ApiUsersIdDeleteData, ApiUsersIdDeleteResponses, ApiUsersIdDeleteErrors, ApiUsersIdPatchData, ApiUsersIdPatchResponses, ApiUsersIdPatchErrors, ApiVersionsGetCollectionData, ApiVersionsGetCollectionResponses, ApiVersionsIdGetData, ApiVersionsIdGetResponses, ApiVersionsIdGetErrors } from './types.gen';
+import type { ApiAccountingsGetCollectionData, ApiAccountingsGetCollectionResponses, ApiAccountingsIdGetData, ApiAccountingsIdGetResponses, ApiAccountingsIdGetErrors, ApiAccountingsIdPatchData, ApiAccountingsIdPatchResponses, ApiAccountingsIdPatchErrors, ApiAccountingBalancePointsGetCollectionData, ApiAccountingBalancePointsGetCollectionResponses, ApiAccountingTransactionsGetCollectionData, ApiAccountingTransactionsGetCollectionResponses, ApiAccountingTransactionsIdGetData, ApiAccountingTransactionsIdGetResponses, ApiAccountingTransactionsIdGetErrors, ApiCategoriesGetCollectionData, ApiCategoriesGetCollectionResponses, ApiCategoriesPostData, ApiCategoriesPostResponses, ApiCategoriesPostErrors, ApiCategoriesIdOrSlugGetData, ApiCategoriesIdOrSlugGetResponses, ApiCategoriesIdOrSlugGetErrors, ApiCategoriesIdDeleteData, ApiCategoriesIdDeleteResponses, ApiCategoriesIdDeleteErrors, ApiCategoriesIdPatchData, ApiCategoriesIdPatchResponses, ApiCategoriesIdPatchErrors, ApiGatewaysGetCollectionData, ApiGatewaysGetCollectionResponses, ApiGatewaysIdGetData, ApiGatewaysIdGetResponses, ApiGatewaysIdGetErrors, ApiGatewayChargesGetCollectionData, ApiGatewayChargesGetCollectionResponses, ApiGatewayChargestotalsGetCollectionData, ApiGatewayChargestotalsGetCollectionResponses, ApiGatewayChargesIdGetData, ApiGatewayChargesIdGetResponses, ApiGatewayChargesIdGetErrors, ApiGatewayChargesIdPatchData, ApiGatewayChargesIdPatchResponses, ApiGatewayChargesIdPatchErrors, ApiGatewayCheckoutsGetCollectionData, ApiGatewayCheckoutsGetCollectionResponses, ApiGatewayCheckoutsPostData, ApiGatewayCheckoutsPostResponses, ApiGatewayCheckoutsPostErrors, ApiGatewayCheckoutsIdGetData, ApiGatewayCheckoutsIdGetResponses, ApiGatewayCheckoutsIdGetErrors, ApiGatewayCheckoutsIdPatchData, ApiGatewayCheckoutsIdPatchResponses, ApiGatewayCheckoutsIdPatchErrors, ApiMatchCallsGetCollectionData, ApiMatchCallsGetCollectionResponses, ApiMatchCallsPostData, ApiMatchCallsPostResponses, ApiMatchCallsPostErrors, ApiMatchCallsIdDeleteData, ApiMatchCallsIdDeleteResponses, ApiMatchCallsIdDeleteErrors, ApiMatchCallsIdGetData, ApiMatchCallsIdGetResponses, ApiMatchCallsIdGetErrors, ApiMatchCallsIdPatchData, ApiMatchCallsIdPatchResponses, ApiMatchCallsIdPatchErrors, ApiMatchCallSubmissionsGetCollectionData, ApiMatchCallSubmissionsGetCollectionResponses, ApiMatchCallSubmissionsPostData, ApiMatchCallSubmissionsPostResponses, ApiMatchCallSubmissionsPostErrors, ApiMatchCallSubmissionsIdGetData, ApiMatchCallSubmissionsIdGetResponses, ApiMatchCallSubmissionsIdGetErrors, ApiMatchCallSubmissionsIdPatchData, ApiMatchCallSubmissionsIdPatchResponses, ApiMatchCallSubmissionsIdPatchErrors, ApiMatchFormulasGetCollectionData, ApiMatchFormulasGetCollectionResponses, ApiMatchFormulasNameGetData, ApiMatchFormulasNameGetResponses, ApiMatchFormulasNameGetErrors, ApiMatchRulesGetCollectionData, ApiMatchRulesGetCollectionResponses, ApiMatchRulesNameGetData, ApiMatchRulesNameGetResponses, ApiMatchRulesNameGetErrors, ApiMatchStrategiesGetCollectionData, ApiMatchStrategiesGetCollectionResponses, ApiMatchStrategiesPostData, ApiMatchStrategiesPostResponses, ApiMatchStrategiesPostErrors, ApiMatchStrategiesIdDeleteData, ApiMatchStrategiesIdDeleteResponses, ApiMatchStrategiesIdDeleteErrors, ApiMatchStrategiesIdGetData, ApiMatchStrategiesIdGetResponses, ApiMatchStrategiesIdGetErrors, ApiMatchStrategiesIdPatchData, ApiMatchStrategiesIdPatchResponses, ApiMatchStrategiesIdPatchErrors, ApiUsersIdorganizationGetData, ApiUsersIdorganizationGetResponses, ApiUsersIdorganizationGetErrors, ApiUsersIdorganizationPatchData, ApiUsersIdorganizationPatchResponses, ApiUsersIdorganizationPatchErrors, ApiUsersIdpersonGetData, ApiUsersIdpersonGetResponses, ApiUsersIdpersonGetErrors, ApiUsersIdpersonPatchData, ApiUsersIdpersonPatchResponses, ApiUsersIdpersonPatchErrors, ApiPingGetData, ApiPingGetResponses, ApiPingGetErrors, ApiProjectsGetCollectionData, ApiProjectsGetCollectionResponses, ApiProjectsPostData, ApiProjectsPostResponses, ApiProjectsPostErrors, ApiProjectsIdOrSlugGetData, ApiProjectsIdOrSlugGetResponses, ApiProjectsIdOrSlugGetErrors, ApiProjectsIdDeleteData, ApiProjectsIdDeleteResponses, ApiProjectsIdDeleteErrors, ApiProjectsIdPatchData, ApiProjectsIdPatchResponses, ApiProjectsIdPatchErrors, ApiProjectBudgetItemsGetCollectionData, ApiProjectBudgetItemsGetCollectionResponses, ApiProjectBudgetItemsPostData, ApiProjectBudgetItemsPostResponses, ApiProjectBudgetItemsPostErrors, ApiProjectBudgetItemsIdDeleteData, ApiProjectBudgetItemsIdDeleteResponses, ApiProjectBudgetItemsIdDeleteErrors, ApiProjectBudgetItemsIdGetData, ApiProjectBudgetItemsIdGetResponses, ApiProjectBudgetItemsIdGetErrors, ApiProjectBudgetItemsIdPatchData, ApiProjectBudgetItemsIdPatchResponses, ApiProjectBudgetItemsIdPatchErrors, ApiProjectCollaborationsGetCollectionData, ApiProjectCollaborationsGetCollectionResponses, ApiProjectCollaborationsPostData, ApiProjectCollaborationsPostResponses, ApiProjectCollaborationsPostErrors, ApiProjectCollaborationsIdDeleteData, ApiProjectCollaborationsIdDeleteResponses, ApiProjectCollaborationsIdDeleteErrors, ApiProjectCollaborationsIdGetData, ApiProjectCollaborationsIdGetResponses, ApiProjectCollaborationsIdGetErrors, ApiProjectCollaborationsIdPatchData, ApiProjectCollaborationsIdPatchResponses, ApiProjectCollaborationsIdPatchErrors, ApiProjectRewardsGetCollectionData, ApiProjectRewardsGetCollectionResponses, ApiProjectRewardsPostData, ApiProjectRewardsPostResponses, ApiProjectRewardsPostErrors, ApiProjectRewardsIdDeleteData, ApiProjectRewardsIdDeleteResponses, ApiProjectRewardsIdDeleteErrors, ApiProjectRewardsIdGetData, ApiProjectRewardsIdGetResponses, ApiProjectRewardsIdGetErrors, ApiProjectRewardsIdPatchData, ApiProjectRewardsIdPatchResponses, ApiProjectRewardsIdPatchErrors, ApiProjectRewardClaimsGetCollectionData, ApiProjectRewardClaimsGetCollectionResponses, ApiProjectRewardClaimsPostData, ApiProjectRewardClaimsPostResponses, ApiProjectRewardClaimsPostErrors, ApiProjectRewardClaimsIdDeleteData, ApiProjectRewardClaimsIdDeleteResponses, ApiProjectRewardClaimsIdDeleteErrors, ApiProjectRewardClaimsIdGetData, ApiProjectRewardClaimsIdGetResponses, ApiProjectRewardClaimsIdGetErrors, ApiProjectSupportsGetCollectionData, ApiProjectSupportsGetCollectionResponses, ApiProjectSupportsmoneyTotalGetCollectionData, ApiProjectSupportsmoneyTotalGetCollectionResponses, ApiProjectSupportsIdGetData, ApiProjectSupportsIdGetResponses, ApiProjectSupportsIdGetErrors, ApiProjectSupportsIdPatchData, ApiProjectSupportsIdPatchResponses, ApiProjectSupportsIdPatchErrors, ApiProjectUpdatesGetCollectionData, ApiProjectUpdatesGetCollectionResponses, ApiProjectUpdatesPostData, ApiProjectUpdatesPostResponses, ApiProjectUpdatesPostErrors, ApiProjectUpdatesIdDeleteData, ApiProjectUpdatesIdDeleteResponses, ApiProjectUpdatesIdDeleteErrors, ApiProjectUpdatesIdGetData, ApiProjectUpdatesIdGetResponses, ApiProjectUpdatesIdGetErrors, ApiProjectUpdatesIdPatchData, ApiProjectUpdatesIdPatchResponses, ApiProjectUpdatesIdPatchErrors, ApiTipjarsGetCollectionData, ApiTipjarsGetCollectionResponses, ApiTipjarsPostData, ApiTipjarsPostResponses, ApiTipjarsPostErrors, ApiTipjarsIdDeleteData, ApiTipjarsIdDeleteResponses, ApiTipjarsIdDeleteErrors, ApiTipjarsIdGetData, ApiTipjarsIdGetResponses, ApiTipjarsIdGetErrors, ApiTipjarsIdPatchData, ApiTipjarsIdPatchResponses, ApiTipjarsIdPatchErrors, ApiUsersGetCollectionData, ApiUsersGetCollectionResponses, ApiUsersPostData, ApiUsersPostResponses, ApiUsersPostErrors, ApiUsersIdOrHandleGetData, ApiUsersIdOrHandleGetResponses, ApiUsersIdOrHandleGetErrors, ApiUsersIdDeleteData, ApiUsersIdDeleteResponses, ApiUsersIdDeleteErrors, ApiUsersIdPatchData, ApiUsersIdPatchResponses, ApiUsersIdPatchErrors, ApiVersionsGetCollectionData, ApiVersionsGetCollectionResponses, ApiVersionsIdGetData, ApiVersionsIdGetResponses, ApiVersionsIdGetErrors } from './types.gen';
import { client as _heyApiClient } from './client.gen';
export type Options = ClientOptions & {
@@ -163,28 +163,28 @@ export const apiCategoriesPost = (options:
};
/**
- * Removes the Category resource.
- * Removes the Category resource.
+ * Retrieves a Category resource.
+ * Retrieves one Category resource.
*/
-export const apiCategoriesIdDelete = (options: Options) => {
- return (options.client ?? _heyApiClient).delete({
+export const apiCategoriesIdOrSlugGet = (options: Options) => {
+ return (options.client ?? _heyApiClient).get({
security: [
{
scheme: 'bearer',
type: 'http'
}
],
- url: '/v4/categories/{id}',
+ url: '/v4/categories/{idOrSlug}',
...options
});
};
/**
- * Retrieves a Category resource.
- * Retrieves one Category resource.
+ * Removes the Category resource.
+ * Removes the Category resource.
*/
-export const apiCategoriesIdGet = (options: Options) => {
- return (options.client ?? _heyApiClient).get({
+export const apiCategoriesIdDelete = (options: Options) => {
+ return (options.client ?? _heyApiClient).delete({
security: [
{
scheme: 'bearer',
diff --git a/src/openapi/client/types.gen.ts b/src/openapi/client/types.gen.ts
index 35f6afe8..90c8a464 100644
--- a/src/openapi/client/types.gen.ts
+++ b/src/openapi/client/types.gen.ts
@@ -248,7 +248,11 @@ export type Category = {
/**
* This value will identify this Category in relationships with other resources.
*/
- id: string;
+ id?: string;
+ /**
+ * A unique, non white space, string identifier for this Category.
+ */
+ readonly slug?: string;
/**
* A human-readable self-descriptive string of what this Category is about.
*/
@@ -278,7 +282,11 @@ export type CategoryJsonld = {
/**
* This value will identify this Category in relationships with other resources.
*/
- id: string;
+ id?: string;
+ /**
+ * A unique, non white space, string identifier for this Category.
+ */
+ readonly slug?: string;
/**
* A human-readable self-descriptive string of what this Category is about.
*/
@@ -1530,9 +1538,21 @@ export type Project = {
*/
territory: Territory;
/**
- * Free-form rich text description for the Project.
+ * Rich-text (markdown) introduction to the project.
*/
- description: string;
+ descBrief?: string;
+ /**
+ * Rich-text (markdown) description on the main features of the project.
+ */
+ descAbout?: string;
+ /**
+ * Rich-text (markdown) about why this project is important.
+ */
+ descGoal?: string;
+ /**
+ * Rich-text (markdown) about team and previous experience.
+ */
+ descTeam?: string;
/**
* Extracted embedding data from the Project's video.
*/
@@ -1639,9 +1659,21 @@ export type ProjectProjectUpdationDto = {
*/
territory?: Territory;
/**
- * Free-form rich text description for the Project.
+ * Rich-text (markdown allowed) introduction to the project.
*/
- description?: string;
+ descBrief?: string;
+ /**
+ * Rich-text (markdown allowed) description on the main features of the project.
+ */
+ descAbout?: string;
+ /**
+ * Rich-text (markdown allowed) about why this project is important.
+ */
+ descGoal?: string;
+ /**
+ * Rich-text (markdown allowed) about team and previous experience.
+ */
+ descTeam?: string;
/**
* On `minimum`, Project will campaign until the minimum deadline.\
* On `optimum`, Project will campaing until the minimum deadline,
@@ -1713,9 +1745,21 @@ export type ProjectJsonld = {
*/
territory: TerritoryJsonld;
/**
- * Free-form rich text description for the Project.
+ * Rich-text (markdown) introduction to the project.
*/
- description: string;
+ descBrief?: string;
+ /**
+ * Rich-text (markdown) description on the main features of the project.
+ */
+ descAbout?: string;
+ /**
+ * Rich-text (markdown) about why this project is important.
+ */
+ descGoal?: string;
+ /**
+ * Rich-text (markdown) about team and previous experience.
+ */
+ descTeam?: string;
/**
* Extracted embedding data from the Project's video.
*/
@@ -2487,6 +2531,9 @@ export type User = {
* A unique, non white space, byte-safe string identifier for this User.
*/
handle: string;
+ /**
+ * The User's given email address. Only available to themselves and platform administrators.
+ */
email: string;
/**
* Has this User confirmed their email address?
@@ -2507,7 +2554,8 @@ export type User = {
readonly displayName?: string;
/**
* For `individual` User types: personal data about the User themselves.\
- * For `organization` User types: data for the organization representative or person managing the User.
+ * For `organization` User types: data for the organization representative or person managing the User.\
+ * Only available to themselves and platform administrators.
*/
readonly person?: string;
/**
@@ -2597,6 +2645,9 @@ export type UserJsonld = {
* A unique, non white space, byte-safe string identifier for this User.
*/
handle: string;
+ /**
+ * The User's given email address. Only available to themselves and platform administrators.
+ */
email: string;
/**
* Has this User confirmed their email address?
@@ -2617,7 +2668,8 @@ export type UserJsonld = {
readonly displayName?: string;
/**
* For `individual` User types: personal data about the User themselves.\
- * For `organization` User types: data for the organization representative or person managing the User.
+ * For `organization` User types: data for the organization representative or person managing the User.\
+ * Only available to themselves and platform administrators.
*/
readonly person?: string;
/**
@@ -2950,6 +3002,9 @@ export type ApiCategoriesGetCollectionData = {
* The number of items per page
*/
itemsPerPage?: number;
+ slug?: string;
+ 'slug[]'?: Array;
+ name?: string;
};
url: '/v4/categories';
};
@@ -2999,6 +3054,36 @@ export type ApiCategoriesPostResponses = {
export type ApiCategoriesPostResponse = ApiCategoriesPostResponses[keyof ApiCategoriesPostResponses];
+export type ApiCategoriesIdOrSlugGetData = {
+ body?: never;
+ path: {
+ /**
+ * Category identifier or slug
+ */
+ idOrSlug: string;
+ };
+ query?: never;
+ url: '/v4/categories/{idOrSlug}';
+};
+
+export type ApiCategoriesIdOrSlugGetErrors = {
+ /**
+ * Not found
+ */
+ 404: ErrorJsonld;
+};
+
+export type ApiCategoriesIdOrSlugGetError = ApiCategoriesIdOrSlugGetErrors[keyof ApiCategoriesIdOrSlugGetErrors];
+
+export type ApiCategoriesIdOrSlugGetResponses = {
+ /**
+ * Category resource
+ */
+ 200: Category;
+};
+
+export type ApiCategoriesIdOrSlugGetResponse = ApiCategoriesIdOrSlugGetResponses[keyof ApiCategoriesIdOrSlugGetResponses];
+
export type ApiCategoriesIdDeleteData = {
body?: never;
path: {
@@ -3033,36 +3118,6 @@ export type ApiCategoriesIdDeleteResponses = {
export type ApiCategoriesIdDeleteResponse = ApiCategoriesIdDeleteResponses[keyof ApiCategoriesIdDeleteResponses];
-export type ApiCategoriesIdGetData = {
- body?: never;
- path: {
- /**
- * Category identifier
- */
- id: string;
- };
- query?: never;
- url: '/v4/categories/{id}';
-};
-
-export type ApiCategoriesIdGetErrors = {
- /**
- * Not found
- */
- 404: ErrorJsonld;
-};
-
-export type ApiCategoriesIdGetError = ApiCategoriesIdGetErrors[keyof ApiCategoriesIdGetErrors];
-
-export type ApiCategoriesIdGetResponses = {
- /**
- * Category resource
- */
- 200: Category;
-};
-
-export type ApiCategoriesIdGetResponse = ApiCategoriesIdGetResponses[keyof ApiCategoriesIdGetResponses];
-
export type ApiCategoriesIdPatchData = {
/**
* The updated Category resource
@@ -3177,10 +3232,14 @@ export type ApiGatewayChargesGetCollectionData = {
itemsPerPage?: number;
'checkout.gateway'?: string;
'checkout.gateway[]'?: Array;
+ 'checkout.origin'?: string;
+ 'checkout.origin[]'?: Array;
'checkout.trackings.value'?: string;
'checkout.trackings.value[]'?: Array;
type?: string;
'type[]'?: Array;
+ title?: string;
+ 'title[]'?: Array;
target?: string;
'target[]'?: Array;
'money.currency'?: string;
@@ -3223,10 +3282,14 @@ export type ApiGatewayChargestotalsGetCollectionData = {
query?: {
'checkout.gateway'?: string;
'checkout.gateway[]'?: Array;
+ 'checkout.origin'?: string;
+ 'checkout.origin[]'?: Array;
'checkout.trackings.value'?: string;
'checkout.trackings.value[]'?: Array;
type?: string;
'type[]'?: Array;
+ title?: string;
+ 'title[]'?: Array;
target?: string;
'target[]'?: Array;
'money.currency'?: string;
@@ -3346,6 +3409,14 @@ export type ApiGatewayCheckoutsGetCollectionData = {
* The number of items per page
*/
itemsPerPage?: number;
+ gateway?: string;
+ 'gateway[]'?: Array;
+ origin?: string;
+ 'origin[]'?: Array;
+ status?: string;
+ 'status[]'?: Array;
+ 'trackings.value'?: string;
+ 'trackings.value[]'?: Array;
};
url: '/v4/gateway_checkouts';
};
@@ -4268,7 +4339,7 @@ export type ApiProjectsGetCollectionData = {
'territory.subLvl1[]'?: Array;
'territory.subLvl2'?: string;
'territory.subLvl2[]'?: Array;
- description?: string;
+ descBrief?: string;
status?: string;
'status[]'?: Array;
'calendar.release[before]'?: string;
@@ -5554,6 +5625,10 @@ export type ApiUsersGetCollectionData = {
* The number of items per page
*/
itemsPerPage?: number;
+ /**
+ * Searches on `email`, `person.firstName`, `person.lastName`, `organization.legalName`, `organization.businessName`
+ */
+ q?: string;
handle?: string;
'order[handle]'?: 'asc' | 'desc';
'order[dateCreated]'?: 'asc' | 'desc';
@@ -5571,6 +5646,22 @@ export type ApiUsersGetCollectionData = {
'territory.subLvl2[]'?: Array;
roles?: string;
'roles[]'?: Array;
+ /**
+ * Secured by `is_granted("ROLE_ADMIN")`
+ */
+ 'person.taxId'?: string;
+ /**
+ * Secured by `is_granted("ROLE_ADMIN")`
+ */
+ 'person.taxId[]'?: Array;
+ /**
+ * Secured by `is_granted("ROLE_ADMIN")`
+ */
+ 'organization.taxId'?: string;
+ /**
+ * Secured by `is_granted("ROLE_ADMIN")`
+ */
+ 'organization.taxId[]'?: Array;
active?: boolean;
'dateCreated[before]'?: string;
'dateCreated[strictly_before]'?: string;
@@ -5599,12 +5690,7 @@ export type ApiUsersPostData = {
*/
body: UserUserSignupDto;
path?: never;
- query?: {
- /**
- * Only available to admin users
- */
- email?: string;
- };
+ query?: never;
url: '/v4/users';
};
@@ -5638,12 +5724,7 @@ export type ApiUsersIdOrHandleGetData = {
*/
idOrHandle: string;
};
- query?: {
- /**
- * Only available to admin users
- */
- email?: string;
- };
+ query?: never;
url: '/v4/users/{idOrHandle}';
};
@@ -5673,12 +5754,7 @@ export type ApiUsersIdDeleteData = {
*/
id: string;
};
- query?: {
- /**
- * Only available to admin users
- */
- email?: string;
- };
+ query?: never;
url: '/v4/users/{id}';
};
@@ -5711,12 +5787,7 @@ export type ApiUsersIdPatchData = {
*/
id: string;
};
- query?: {
- /**
- * Only available to admin users
- */
- email?: string;
- };
+ query?: never;
url: '/v4/users/{id}';
};
From 80cf642ce08f46d56388496834e192661fe34e9d Mon Sep 17 00:00:00 2001
From: Daniel Subiabre
Date: Fri, 14 Aug 2026 15:40:01 +0200
Subject: [PATCH 07/17] fix: update outdated SDK calls
---
.../create/CreateProjectForm.svelte | 4 +--
src/components/project/CategoryTag.svelte | 6 ++--
.../project/edit/CampaignInfoStep.svelte | 30 +++++++++----------
.../project/edit/ConfigurationStep.svelte | 4 +--
src/components/search/CategoryFilter.svelte | 8 ++---
src/stores/drafts/draftValidation.ts | 6 ++--
src/stores/drafts/projectDraft.ts | 18 +++++------
src/utils/drafts/repository.ts | 6 ++--
src/utils/projectPublisher.ts | 17 ++++-------
9 files changed, 46 insertions(+), 53 deletions(-)
diff --git a/src/components/create/CreateProjectForm.svelte b/src/components/create/CreateProjectForm.svelte
index 36077b4d..406d46fc 100644
--- a/src/components/create/CreateProjectForm.svelte
+++ b/src/components/create/CreateProjectForm.svelte
@@ -9,7 +9,6 @@
type ProjectProjectCreationDto,
} from "../../openapi/client";
import { client } from "../../openapi/client/client.gen";
- import { apiCategoriesIdGetUrl } from "../../openapi/client/paths.gen";
import {
validateCreateForm,
validateField,
@@ -36,6 +35,7 @@
import DateInput from "../library/inputs/DateInput.svelte";
import TextInput from "../library/inputs/TextInput.svelte";
import Title from "../library/typography/Title.svelte";
+ import { apiCategoriesIdOrSlugGetUrl } from "../../openapi/client/paths.gen";
let releaseDate = $state($project.release ? new Date($project.release) : new Date());
@@ -120,7 +120,7 @@
function handleCategoryChange(selected: Category[]) {
const categoryIris = selected.map((s) => {
- return client.buildUrl({ url: apiCategoriesIdGetUrl, path: { id: s.id } });
+ return client.buildUrl({ url: apiCategoriesIdOrSlugGetUrl, path: { idOrSlug: s.id } });
});
handleFieldChange("categories", categoryIris);
diff --git a/src/components/project/CategoryTag.svelte b/src/components/project/CategoryTag.svelte
index 3b2dbbdd..846f1783 100644
--- a/src/components/project/CategoryTag.svelte
+++ b/src/components/project/CategoryTag.svelte
@@ -1,6 +1,6 @@
@@ -60,7 +58,6 @@
bind:open
bind:isAnonymous
{support}
- {token}
onSubmit={(message, anonymous) => {
onUpdate?.({
...support,
diff --git a/src/components/checkout/CommentModal.svelte b/src/components/checkout/CommentModal.svelte
index 9bd37948..c2a6bb77 100644
--- a/src/components/checkout/CommentModal.svelte
+++ b/src/components/checkout/CommentModal.svelte
@@ -8,16 +8,16 @@
open: boolean;
isAnonymous: boolean;
support: ProjectSupport | undefined;
- token: string;
onSubmit?: (message: string, anonymous: boolean) => void;
}
+
let {
open = $bindable(false),
isAnonymous = $bindable(false),
support,
- token,
onSubmit,
}: Props = $props();
+
let message = $state("");
async function handleSubmit() {
@@ -28,9 +28,9 @@
try {
await apiProjectSupportsIdPatch({
+ baseUrl: "/api/relay",
path: { id: projectSupportPath },
headers: {
- Authorization: `Bearer ${token}`,
"Content-Type": "application/merge-patch+json",
},
body: {
diff --git a/src/components/checkout/FeedbackForm.svelte b/src/components/checkout/FeedbackForm.svelte
index 0785dae5..086cb1f6 100644
--- a/src/components/checkout/FeedbackForm.svelte
+++ b/src/components/checkout/FeedbackForm.svelte
@@ -9,14 +9,13 @@
paymentMethod?: string;
projects: Project[];
projectSupports: ProjectSupport[];
- token: string;
}
- let { paymentMethod = undefined, projects, projectSupports, token }: Props = $props();
+ let { paymentMethod = undefined, projects, projectSupports }: Props = $props();
let type = $state<"organization" | "individual">("organization");
- let supports = $state(projectSupports);
+ let supports = $derived(projectSupports);
let feedbackItems = $derived(() =>
projects.map((project) => {
@@ -79,8 +78,6 @@
{
supports = supports.map((s) =>
s.id === updatedSupport.id ? updatedSupport : s,
diff --git a/src/pages/[...locale]/checkout/verify.astro b/src/pages/[...locale]/checkout/verify.astro
index e173b709..ac725b7a 100644
--- a/src/pages/[...locale]/checkout/verify.astro
+++ b/src/pages/[...locale]/checkout/verify.astro
@@ -14,8 +14,8 @@ import { apiGatewaysGetCollection } from "../../../openapi/client/index";
import Card from "../../../components/library/cards/Card.svelte";
import { extractId } from "../../../utils/extractId.ts";
import { sumMoney } from "../../../utils/money";
-import { goto } from "../../../utils/navigation";
import type { Money, Project, ProjectSupport } from "../../../openapi/client";
+import { goto } from "../../../utils/navigation";
const { t, lang, session } = Astro.locals;
@@ -29,9 +29,7 @@ const { token, user } = session;
const { data: accounting } = await apiAccountingsIdGet({
path: { id: extractId(user.accounting)! },
- headers: {
- Authorization: `${token.token_type} ${token.access_token}`,
- },
+ headers: token.asHttpHeaders,
});
let error = null;
@@ -50,9 +48,7 @@ try {
const response = await apiGatewayCheckoutsIdGet({
path: { id: checkoutId },
- headers: {
- Authorization: `${token.token_type} ${token.access_token}`,
- },
+ headers: token.asHttpHeaders,
});
if (!response.data) {
@@ -73,10 +69,6 @@ try {
...new Set(response.data.charges.map((charge) => charge.target).filter(Boolean)),
] as string[];
- const authHeaders = {
- Authorization: `${token.token_type} ${token.access_token}`,
- };
-
const donatedProjects = (
await Promise.all(
targetAccountingUrls.map(async (accountingUrl) => {
@@ -86,7 +78,7 @@ try {
const { data: targetAccounting } = await apiAccountingsIdGet({
path: { id: accountingId },
- headers: authHeaders,
+ headers: token.asHttpHeaders,
});
if (!targetAccounting?.owner?.includes("/v4/projects/")) return null;
@@ -96,7 +88,7 @@ try {
const { data: project } = await apiProjectsIdOrSlugGet({
path: { idOrSlug: projectId },
- headers: authHeaders,
+ headers: token.asHttpHeaders,
});
return project;
@@ -112,7 +104,7 @@ try {
const { data: supports } = await apiProjectSupportsGetCollection({
query: { origin: user.accounting },
- headers: authHeaders,
+ headers: token.asHttpHeaders,
});
projectSupports =
@@ -217,7 +209,6 @@ const postPaymentUrl = checkoutId
paymentMethod={selectedGateway}
{projects}
{projectSupports}
- token={token.access_token}
/>
From 23564348afab51babc4a3dd8e676ebee026d01f6 Mon Sep 17 00:00:00 2001
From: Daniel Subiabre
Date: Fri, 14 Aug 2026 19:00:34 +0200
Subject: [PATCH 11/17] fix: make checkout/verify page title translatable
---
src/i18n/locales/es.json | 1 +
src/pages/[...locale]/checkout/verify.astro | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 48ddfefd..75fa0a97 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -459,6 +459,7 @@
"remainingBalance": "Saldo que te quedará"
},
"verify": {
+ "title": "Estado del pago",
"approved": {
"title": "Tu medio de pago se ha procesado con un éxito apabullante",
"description": "¡Bien! Estás a un paso de terminar y de hacer el mundo un poco mejor.",
diff --git a/src/pages/[...locale]/checkout/verify.astro b/src/pages/[...locale]/checkout/verify.astro
index ac725b7a..3e96f08e 100644
--- a/src/pages/[...locale]/checkout/verify.astro
+++ b/src/pages/[...locale]/checkout/verify.astro
@@ -122,7 +122,7 @@ const postPaymentUrl = checkoutId
: "/checkout/post-payment";
---
-
+