Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/frontend/App.css
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
--color-primary-content: #fff;
--color-secondary: #f4f5f6;
--color-secondary-content: #58667e;
--color-accent: #1de7df;
--color-accent: #db2777;
--color-accent-content: #000;
--color-neutral: #eff2f5;
--color-neutral-content: #58667e;
Expand Down
985 changes: 985 additions & 0 deletions apps/frontend/src/pages/terms/full/index.tsx

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
import { useTranslation } from "react-i18next";
import { Link, useParams } from "@tanstack/react-router";
import { Trans, useTranslation } from "react-i18next";

export function TermsAndConditionsPage() {
export function TermsAndConditionsShortPage() {
const { t } = useTranslation();
const params = useParams({ strict: false });

return (
<main className="container mx-auto max-w-4xl px-4 py-20 md:px-10">
<h1 className="mb-4 font-bold text-3xl">{t("pages.termsAndConditions.title")}</h1>
<p className="mb-6 text-gray-600">{t("pages.termsAndConditions.lastUpdated")}</p>

<p className="mb-8">{t("pages.termsAndConditions.intro")}</p>
<p className="mb-8">
<Trans
components={{
1: (
<Link
className="text-primary underline transition-colors hover:text-primary/80"
params={params}
to="/{-$locale}/terms-and-conditions-full"
/>
)
}}
i18nKey="pages.termsAndConditions.intro"
/>
</p>

<section className="mb-8">
<h2 className="mb-4 font-semibold text-2xl">{t("pages.termsAndConditions.sections.1.title")}</h2>
Expand Down Expand Up @@ -67,7 +82,20 @@ export function TermsAndConditionsPage() {

<section className="mb-8">
<h2 className="mb-4 font-semibold text-2xl">{t("pages.termsAndConditions.sections.12.title")}</h2>
<p>{t("pages.termsAndConditions.sections.12.text")}</p>
<p>
<Trans
components={{
1: (
<Link
className="text-primary underline transition-colors hover:text-primary/80"
params={params}
to="/{-$locale}/terms-and-conditions-full"
/>
)
}}
i18nKey="pages.termsAndConditions.sections.12.text"
/>
</p>
</section>
</main>
);
Expand Down
23 changes: 23 additions & 0 deletions apps/frontend/src/routeTree.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { Route as rootRouteImport } from './routes/__root'
import { Route as Char123LocaleChar125RouteImport } from './routes/{-$locale}'
import { Route as Char123LocaleChar125IndexRouteImport } from './routes/{-$locale}/index'
import { Route as Char123LocaleChar125WidgetRouteImport } from './routes/{-$locale}/widget'
import { Route as Char123LocaleChar125TermsAndConditionsFullRouteImport } from './routes/{-$locale}/terms-and-conditions-full'
import { Route as Char123LocaleChar125TermsAndConditionsRouteImport } from './routes/{-$locale}/terms-and-conditions'
import { Route as Char123LocaleChar125PrivacyPolicyRouteImport } from './routes/{-$locale}/privacy-policy'
import { Route as Char123LocaleChar125BusinessRouteImport } from './routes/{-$locale}/business'
Expand All @@ -33,6 +34,12 @@ const Char123LocaleChar125WidgetRoute =
path: '/widget',
getParentRoute: () => Char123LocaleChar125Route,
} as any)
const Char123LocaleChar125TermsAndConditionsFullRoute =
Char123LocaleChar125TermsAndConditionsFullRouteImport.update({
id: '/terms-and-conditions-full',
path: '/terms-and-conditions-full',
getParentRoute: () => Char123LocaleChar125Route,
} as any)
const Char123LocaleChar125TermsAndConditionsRoute =
Char123LocaleChar125TermsAndConditionsRouteImport.update({
id: '/terms-and-conditions',
Expand All @@ -57,13 +64,15 @@ export interface FileRoutesByFullPath {
'/{-$locale}/business': typeof Char123LocaleChar125BusinessRoute
'/{-$locale}/privacy-policy': typeof Char123LocaleChar125PrivacyPolicyRoute
'/{-$locale}/terms-and-conditions': typeof Char123LocaleChar125TermsAndConditionsRoute
'/{-$locale}/terms-and-conditions-full': typeof Char123LocaleChar125TermsAndConditionsFullRoute
'/{-$locale}/widget': typeof Char123LocaleChar125WidgetRoute
'/{-$locale}/': typeof Char123LocaleChar125IndexRoute
}
export interface FileRoutesByTo {
'/{-$locale}/business': typeof Char123LocaleChar125BusinessRoute
'/{-$locale}/privacy-policy': typeof Char123LocaleChar125PrivacyPolicyRoute
'/{-$locale}/terms-and-conditions': typeof Char123LocaleChar125TermsAndConditionsRoute
'/{-$locale}/terms-and-conditions-full': typeof Char123LocaleChar125TermsAndConditionsFullRoute
'/{-$locale}/widget': typeof Char123LocaleChar125WidgetRoute
'/{-$locale}': typeof Char123LocaleChar125IndexRoute
}
Expand All @@ -73,6 +82,7 @@ export interface FileRoutesById {
'/{-$locale}/business': typeof Char123LocaleChar125BusinessRoute
'/{-$locale}/privacy-policy': typeof Char123LocaleChar125PrivacyPolicyRoute
'/{-$locale}/terms-and-conditions': typeof Char123LocaleChar125TermsAndConditionsRoute
'/{-$locale}/terms-and-conditions-full': typeof Char123LocaleChar125TermsAndConditionsFullRoute
'/{-$locale}/widget': typeof Char123LocaleChar125WidgetRoute
'/{-$locale}/': typeof Char123LocaleChar125IndexRoute
}
Expand All @@ -83,13 +93,15 @@ export interface FileRouteTypes {
| '/{-$locale}/business'
| '/{-$locale}/privacy-policy'
| '/{-$locale}/terms-and-conditions'
| '/{-$locale}/terms-and-conditions-full'
| '/{-$locale}/widget'
| '/{-$locale}/'
fileRoutesByTo: FileRoutesByTo
to:
| '/{-$locale}/business'
| '/{-$locale}/privacy-policy'
| '/{-$locale}/terms-and-conditions'
| '/{-$locale}/terms-and-conditions-full'
| '/{-$locale}/widget'
| '/{-$locale}'
id:
Expand All @@ -98,6 +110,7 @@ export interface FileRouteTypes {
| '/{-$locale}/business'
| '/{-$locale}/privacy-policy'
| '/{-$locale}/terms-and-conditions'
| '/{-$locale}/terms-and-conditions-full'
| '/{-$locale}/widget'
| '/{-$locale}/'
fileRoutesById: FileRoutesById
Expand Down Expand Up @@ -129,6 +142,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof Char123LocaleChar125WidgetRouteImport
parentRoute: typeof Char123LocaleChar125Route
}
'/{-$locale}/terms-and-conditions-full': {
id: '/{-$locale}/terms-and-conditions-full'
path: '/terms-and-conditions-full'
fullPath: '/{-$locale}/terms-and-conditions-full'
preLoaderRoute: typeof Char123LocaleChar125TermsAndConditionsFullRouteImport
parentRoute: typeof Char123LocaleChar125Route
}
'/{-$locale}/terms-and-conditions': {
id: '/{-$locale}/terms-and-conditions'
path: '/terms-and-conditions'
Expand Down Expand Up @@ -157,6 +177,7 @@ interface Char123LocaleChar125RouteChildren {
Char123LocaleChar125BusinessRoute: typeof Char123LocaleChar125BusinessRoute
Char123LocaleChar125PrivacyPolicyRoute: typeof Char123LocaleChar125PrivacyPolicyRoute
Char123LocaleChar125TermsAndConditionsRoute: typeof Char123LocaleChar125TermsAndConditionsRoute
Char123LocaleChar125TermsAndConditionsFullRoute: typeof Char123LocaleChar125TermsAndConditionsFullRoute
Char123LocaleChar125WidgetRoute: typeof Char123LocaleChar125WidgetRoute
Char123LocaleChar125IndexRoute: typeof Char123LocaleChar125IndexRoute
}
Expand All @@ -167,6 +188,8 @@ const Char123LocaleChar125RouteChildren: Char123LocaleChar125RouteChildren = {
Char123LocaleChar125PrivacyPolicyRoute,
Char123LocaleChar125TermsAndConditionsRoute:
Char123LocaleChar125TermsAndConditionsRoute,
Char123LocaleChar125TermsAndConditionsFullRoute:
Char123LocaleChar125TermsAndConditionsFullRoute,
Char123LocaleChar125WidgetRoute: Char123LocaleChar125WidgetRoute,
Char123LocaleChar125IndexRoute: Char123LocaleChar125IndexRoute,
}
Expand Down
11 changes: 11 additions & 0 deletions apps/frontend/src/routes/{-$locale}/terms-and-conditions-full.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { createFileRoute } from "@tanstack/react-router";
import { BaseLayout } from "../../layouts";
import { TermsAndConditionsFullPage } from "../../pages/terms/full";

export const Route = createFileRoute("/{-$locale}/terms-and-conditions-full")({
component: TermsAndConditionsFullRouteComponent
});

function TermsAndConditionsFullRouteComponent() {
return <BaseLayout main={<TermsAndConditionsFullPage />} />;
}
8 changes: 4 additions & 4 deletions apps/frontend/src/routes/{-$locale}/terms-and-conditions.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { createFileRoute } from "@tanstack/react-router";
import { BaseLayout } from "../../layouts";
import { TermsAndConditionsPage } from "../../pages/terms";
import { TermsAndConditionsShortPage } from "../../pages/terms/short";

export const Route = createFileRoute("/{-$locale}/terms-and-conditions")({
component: TermsAndConditionsRouteComponent
component: TermsAndConditionsShortRouteComponent
});

function TermsAndConditionsRouteComponent() {
return <BaseLayout main={<TermsAndConditionsPage />} />;
function TermsAndConditionsShortRouteComponent() {
return <BaseLayout main={<TermsAndConditionsShortPage />} />;
}
4 changes: 2 additions & 2 deletions apps/frontend/src/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -955,7 +955,7 @@
}
},
"termsAndConditions": {
"intro": "These Short Terms provide a high-level summary of how Vortex operates. They are legally binding. A detailed version of the Terms (\"FULL TERMS & CONDITIONS\") is available and applies in full.",
"intro": "These Short Terms provide a high-level summary of how Vortex operates. They are legally binding. A detailed version of the Terms (<1>\"FULL TERMS & CONDITIONS\"</1>) is available and applies in full.",
"lastUpdated": "Last updated: 7th January 2026",
"sections": {
"1": {
Expand Down Expand Up @@ -1003,7 +1003,7 @@
"title": "11. Governing Law"
},
"12": {
"text": "These Short Terms are supplemented by the Full Terms of Service, Privacy Policy, and Partner Terms, which apply in full in all cases.",
"text": "These Short Terms are supplemented by the <1>Full Terms of Service</1>, Privacy Policy, and Partner Terms, which apply in full in all cases.",
"title": "12. Full Terms"
}
},
Expand Down
4 changes: 2 additions & 2 deletions apps/frontend/src/translations/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -949,7 +949,7 @@
}
},
"termsAndConditions": {
"intro": "Estes Termos Curtos fornecem um resumo de alto nível de como a Vortex opera. Eles são juridicamente vinculativos. Uma versão detalhada dos Termos (\"TERMOS E CONDIÇÕES COMPLETOS\") está disponível e se aplica integralmente.",
"intro": "Estes Termos Curtos fornecem um resumo de alto nível de como a Vortex opera. Eles são juridicamente vinculativos. Uma versão detalhada dos Termos (<1>\"TERMOS E CONDIÇÕES COMPLETOS\"</1>) está disponível e se aplica integralmente.",
"lastUpdated": "Última atualização: 7 de Janeiro de 2026",
"sections": {
"1": {
Expand Down Expand Up @@ -997,7 +997,7 @@
"title": "11. Lei Aplicável"
},
"12": {
"text": "Estes Termos Curtos são complementados pelos Termos de Serviço Completos, Política de Privacidade e Termos do Parceiro, que se aplicam integralmente em todos os casos.",
"text": "Estes Termos Curtos são complementados pelos <1>Termos de Serviço Completos</1>, Política de Privacidade e Termos do Parceiro, que se aplicam integralmente em todos os casos.",
"title": "12. Termos Completos"
}
},
Expand Down