Skip to content

Commit a3bcabc

Browse files
authored
feat: new way of transport (#872)
* feat: new way of transport * remove build * review * add voiture hybride by default * compute all transports everywhere * fix: carpool
1 parent 82e095b commit a3bcabc

588 files changed

Lines changed: 5490 additions & 2371 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.slugignore

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
1-
/.git
2-
/.next/cache
1+
.git
2+
.gitignore
3+
.next/cache
4+
coverage
5+
*.log
6+
.env*

app/(iframes)/iframes/[tool]/[equivalent]/page.tsx

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,7 @@ import { categories } from 'data/categories'
33
import Equivalent from 'components/outils/equivalents/Equivalent'
44
import { equivalentsSimulators } from 'components/outils/equivalents/simulators/equivalentsSimulators'
55

6-
export async function generateStaticParams() {
7-
return categories.flatMap((category) =>
8-
category.equivalents
9-
? category.equivalents.flatMap((equivalent) =>
10-
equivalent.withCarpool
11-
? [
12-
{
13-
tool: category.slug,
14-
equivalent: equivalent.slug,
15-
},
16-
...Array.from({ length: 4 }).map((value, index) => ({
17-
tool: category.slug,
18-
equivalent: `${equivalent.slug}+${index + 1}`,
19-
carpool: index + 1,
20-
})),
21-
]
22-
: [
23-
{
24-
tool: category.slug,
25-
equivalent: equivalent.slug,
26-
},
27-
]
28-
)
29-
: []
30-
)
31-
}
6+
export const dynamic = 'force-dynamic'
327

338
type Props = {
349
params: Promise<{ tool: string; equivalent: string }>

app/(iframes)/iframes/[tool]/page.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
import { notFound } from 'next/navigation'
2-
import { categories } from 'data/categories'
32
import Category from 'components/outils/Category'
43
import { simulators } from 'components/outils/simulators'
54
import { getCategory } from 'utils/category'
65

76
type Props = { params: Promise<{ tool: string }> }
8-
9-
export async function generateStaticParams() {
10-
return categories.map((category) => ({ tool: category.slug }))
11-
}
7+
export const dynamic = 'force-dynamic'
128

139
const page = async (props: Props) => {
1410
const params = await props.params

app/(iframes)/iframes/transport/itineraire/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Category as CategoryType } from 'types/category'
22
import { categories } from 'data/categories'
33
import Category from 'components/outils/Category'
4-
import TransportSimulator from 'components/outils/TransportSimulator'
4+
import TransportSimulator from 'components/outils/transport/TransportSimulator'
55

66
const category = categories.find((category) => category.slug === 'transport') as CategoryType
77

app/(public)/outils/[tool]/[equivalent]/page.tsx

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,7 @@ import { equivalentsSimulators } from 'components/outils/equivalents/simulators/
66
import { getName } from 'utils/Equivalent/equivalent'
77
import Suggestion from 'components/layout/Suggestion'
88

9-
export async function generateStaticParams() {
10-
return categories.flatMap((category) =>
11-
category.equivalents
12-
? category.equivalents.flatMap((equivalent) =>
13-
equivalent.withCarpool
14-
? [
15-
{
16-
tool: category.slug,
17-
equivalent: equivalent.slug,
18-
},
19-
...Array.from({ length: 4 }).map((value, index) => ({
20-
tool: category.slug,
21-
equivalent: `${equivalent.slug}+${index + 1}`,
22-
carpool: index + 1,
23-
})),
24-
]
25-
: [
26-
{
27-
tool: category.slug,
28-
equivalent: equivalent.slug,
29-
},
30-
]
31-
)
32-
: []
33-
)
34-
}
9+
export const dynamic = 'force-dynamic'
3510

3611
type Props = {
3712
params: Promise<{ tool: string; equivalent: string }>

app/(public)/outils/transport/itineraire/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Metadata } from 'next'
22
import { Category as CategoryType } from 'types/category'
33
import { categories } from 'data/categories'
44
import Category from 'components/outils/CategoryPage'
5-
import TransportSimulator from 'components/outils/TransportSimulator'
5+
import TransportSimulator from 'components/outils/transport/TransportSimulator'
66
import { metaDescriptions, metaTitles } from 'utils/meta'
77
import Suggestion from 'components/layout/Suggestion'
88

app/api/dynamics/equivalents/[slug]/route.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ export async function GET(req: NextRequest, context: { params: Promise<{ slug: s
2121
return NextResponse.json(`Please use ${process.env.NEXT_PUBLIC_IMAGE_URL}`, { status: 400 })
2222
}
2323

24-
const [slug, carpool] = decodeURIComponent((await context.params).slug).split('+')
24+
const slugParam = decodeURIComponent((await context.params).slug)
25+
const [slug, carpool] = slugParam.split('+')
2526
if (!slug) {
2627
return NextResponse.json('No slug specified', { status: 400 })
2728
}
@@ -52,9 +53,9 @@ export async function GET(req: NextRequest, context: { params: Promise<{ slug: s
5253

5354
return new ImageResponse(
5455
<Equivalent
55-
slug={equivalent.slug}
56+
slug={slug}
5657
carpool={!!carpool}
57-
name={getName(language, { ...equivalent, category: 0, carpool: Number(carpool) })}
58+
name={getName(language, { ...equivalent, slug: slugParam, carpool: Number(carpool) }, false, 1, false, true)}
5859
quantity={equivalent.value / ((Number(carpool) || 0) + 1)}
5960
unit={equivalent.unit || category.unit}
6061
language={language}

app/api/v1/alimentation/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ const names: Record<Language, Record<string, string>> = {
112112
* properties:
113113
* warning:
114114
* type: string
115-
* example: La requete n'est pas authentifée.
115+
* example: La requete n'est pas authentifiée.
116116
* data:
117117
* type: array
118118
* items:
@@ -171,7 +171,7 @@ export async function GET(req: NextRequest) {
171171
})),
172172
warning: hasAPIKey
173173
? undefined
174-
: `La requete n'est pas authentifée. Nous nous reservons le droit de couper cette API aux utilisateurs anonymes, veuillez nous contacter à ${process.env.NEXT_PUBLIC_CONTACT_EMAIL} pour obtenir une clé d'API gratuite.`,
174+
: `La requete n'est pas authentifiée. Nous nous reservons le droit de couper cette API aux utilisateurs anonymes, veuillez nous contacter à ${process.env.NEXT_PUBLIC_CONTACT_EMAIL} pour obtenir une clé d'API gratuite.`,
175175
},
176176
{ status: 200 }
177177
)

app/api/v1/chauffage/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ const chauffageValidation = z.object({
7373
* properties:
7474
* warning:
7575
* type: string
76-
* example: La requete n'est pas authentifée.
76+
* example: La requete n'est pas authentifiée.
7777
* data:
7878
* type: array
7979
* items:
@@ -116,7 +116,7 @@ export async function GET(req: NextRequest) {
116116
}),
117117
warning: hasAPIKey
118118
? undefined
119-
: `La requete n'est pas authentifée. Nous nous reservons le droit de couper cette API aux utilisateurs anonymes, veuillez nous contacter à ${process.env.NEXT_PUBLIC_CONTACT_EMAIL} pour obtenir une clé d'API gratuite.`,
119+
: `La requete n'est pas authentifiée. Nous nous reservons le droit de couper cette API aux utilisateurs anonymes, veuillez nous contacter à ${process.env.NEXT_PUBLIC_CONTACT_EMAIL} pour obtenir une clé d'API gratuite.`,
120120
},
121121
{ status: 200 }
122122
)

app/api/v1/fruitsetlegumes/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ const validation = z.object({
7474
* properties:
7575
* warning:
7676
* type: string
77-
* example: La requete n'est pas authentifée.
77+
* example: La requete n'est pas authentifiée.
7878
* data:
7979
* type: array
8080
* items:
@@ -131,7 +131,7 @@ export async function GET(req: NextRequest) {
131131
.filter((value) => !inputs.data.categories || inputs.data.categories.includes(value.category)),
132132
warning: hasAPIKey
133133
? undefined
134-
: `La requete n'est pas authentifée. Nous nous reservons le droit de couper cette API aux utilisateurs anonymes, veuillez nous contacter à ${process.env.NEXT_PUBLIC_CONTACT_EMAIL} pour obtenir une clé d'API gratuite.`,
134+
: `La requete n'est pas authentifiée. Nous nous reservons le droit de couper cette API aux utilisateurs anonymes, veuillez nous contacter à ${process.env.NEXT_PUBLIC_CONTACT_EMAIL} pour obtenir une clé d'API gratuite.`,
135135
},
136136
{ status: 200 }
137137
)

0 commit comments

Comments
 (0)