Merge pull request 'content-update' (#26) from content-update into dev
All checks were successful
Build / build-check (push) Successful in 54s

Reviewed-on: #26
Reviewed-by: malopieds <malopieds@la-banquise.fr>
This commit is contained in:
Arthur Wambst 2025-06-21 18:08:16 +02:00
commit 5e42042077
7 changed files with 5094 additions and 12 deletions

View File

@ -0,0 +1,31 @@
name: Build
run-name: CI/CD website
on:
push:
branches:
- main
- dev
pull_request:
types: [opened, synchronize, reopened]
branches:
- main
- dev
jobs:
build-check:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '24.x'
- name: Install dependencies
run: |
cd banquise-website
npm ci
- name: Building
run: |
cd banquise-website
npm run build

4
.gitignore vendored
View File

@ -30,7 +30,3 @@ pnpm-debug.log*
# optional: nix store link if using nix develop # optional: nix store link if using nix develop
.result .result
# optional: lockfiles you don't use
package-lock.json

5039
banquise-website/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,15 @@ import { ScrollToTopButton } from './components/ui/ScrollToTopButton';
import { ParallaxBackground } from './components/ui/ParallaxBackground'; import { ParallaxBackground } from './components/ui/ParallaxBackground';
import { URLS } from './config/constants'; import { URLS } from './config/constants';
interface Service {
name: string;
url: string;
image: string;
icon: string;
description: string;
features: string[];
}
const services = [ const services = [
{ {
name: "Wiki", name: "Wiki",
@ -66,7 +75,7 @@ const services = [
url: URLS.services.pelican, url: URLS.services.pelican,
image: "/path/to/pelican-image.jpg", image: "/path/to/pelican-image.jpg",
icon: "🐧", icon: "🐧",
description: "Générateur de sites statiques Python ultra-rapide et flexible. Créez des blogs, portfolios ou sites de documentation avec une performance optimale et un déploiement simplifié.", description: "Pelican is the ultimate, free game server control panel offering high flying security.",
features: [ features: [
"Gestion de serveurs de jeux avec serveurs dedies (Minecraft, CS2, Palworld...)", "Gestion de serveurs de jeux avec serveurs dedies (Minecraft, CS2, Palworld...)",
"Déploiement en un clic avec templates préconfigurés", "Déploiement en un clic avec templates préconfigurés",
@ -114,15 +123,15 @@ const services = [
{ {
name: "Password change", name: "Password change",
url: URLS.services.ssp, url: URLS.services.ssp,
image: "/path/to/ssp-image.jpg", image: "/path/to/mails-image.jpg",
icon: "📧", icon: "📧",
description: "Service de messagerie électronique professionnel avec interface web moderne. Bénéficiez d'une adresse email personnalisée @la-banquise.fr avec toutes les fonctionnalités avancées.", description: "Password reset.",
features: [ features: [
"Interface pour changer votre mot de passe" "Interface pour changer votre mot de passe"
] ]
}, },
{ {
name: "OpenCloud", name: "Opencloud",
url: URLS.services.opencloud, url: URLS.services.opencloud,
image: "/path/to/opencloud-image.jpg", image: "/path/to/opencloud-image.jpg",
icon: "☁️", icon: "☁️",
@ -141,7 +150,7 @@ const services = [
]; ];
const App: React.FC = () => { const App: React.FC = () => {
const [selectedService, setSelectedService] = useState<typeof services[0] | null>(null); const [selectedService, setSelectedService] = useState<Service | null>(null);
const [openAccordion, setOpenAccordion] = useState<string | null>(null); const [openAccordion, setOpenAccordion] = useState<string | null>(null);
const toggleAccordion = (title: string) => { const toggleAccordion = (title: string) => {

View File

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
// Declare the Service interface here // Update the Service interface to match your actual service objects
interface Service { interface Service {
name: string; name: string;
url: string; url: string;
@ -13,6 +13,7 @@ interface Service {
// Define interface directly in the component file // Define interface directly in the component file
interface ServicesSectionProps { interface ServicesSectionProps {
services: Service[]; services: Service[];
onServiceClick: (service: Service) => void; onServiceClick: (service: Service) => void;
} }

View File

@ -7,11 +7,11 @@ export const URLS = {
pelican: "https://pelican.la-banquise.fr", pelican: "https://pelican.la-banquise.fr",
intra: "https://intra.la-banquise.fr", intra: "https://intra.la-banquise.fr",
mails: "https://mails.la-banquise.fr", mails: "https://mails.la-banquise.fr",
opencloud: "https://opencloud.la-banquise.fr" opencloud: "https://opencloud.la-banquise.fr",
ssp: "https://ssp.la-banquise.fr" ssp: "https://ssp.la-banquise.fr"
}, },
social: { social: {
discord: "https://discord.gg/labanquise" discord: "https://discord.gg/QQWwzX5ptY"
}, },
contact: { contact: {
email: "mailto:contact@la-banquise.fr" email: "mailto:contact@la-banquise.fr"

6
package-lock.json generated Normal file
View File

@ -0,0 +1,6 @@
{
"name": "website-front",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}