[#21] changed react-script to rebuild

This commit is contained in:
Camille Moussu
2025-07-03 14:48:19 +02:00
parent 65621924a2
commit 47fad76217
13 changed files with 2834 additions and 7259 deletions
+9 -9
View File
@@ -1,9 +1,9 @@
REACT_APP_SSO_BASE_URL="https://example.com"
REACT_APP_SSO_CLIENT_ID="example"
REACT_APP_SSO_CLIENT_SECRET=""
REACT_APP_SSO_SCOPE="openid name email"
REACT_APP_SSO_REDIRECT_URI="https://example.com/callback"
REACT_APP_SSO_RESPONSE_TYPE="code"
REACT_APP_SSO_CODE_CHALLENGE_METHOD="S256"
REACT_APP_SSO_POST_LOGOUT_REDIRECT="http://example.com?logout=1"
REACT_APP_CALENDAR_BASE_URL="https://calendar.example.com"
PUBLIC_SSO_BASE_URL="https://example.com"
PUBLIC_SSO_CLIENT_ID="example"
PUBLIC_SSO_CLIENT_SECRET=""
PUBLIC_SSO_SCOPE="openid name email"
PUBLIC_SSO_REDIRECT_URI="https://example.com/callback"
PUBLIC_SSO_RESPONSE_TYPE="code"
PUBLIC_SSO_CODE_CHALLENGE_METHOD="S256"
PUBLIC_SSO_POST_LOGOUT_REDIRECT="http://example.com?logout=1"
PUBLIC_CALENDAR_BASE_URL="https://calendar.example.com"
+1 -1
View File
@@ -9,7 +9,7 @@
/coverage
# production
/build
/dist
# secrets
.DS_Store
+2789 -7219
View File
File diff suppressed because it is too large Load Diff
+9 -4
View File
@@ -29,10 +29,11 @@
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "PORT=5000 react-scripts start",
"build": "react-scripts build",
"start": "PORT=5000 rsbuild dev",
"build": "rsbuild build",
"preview": "rsbuild preview",
"test": "react-scripts test",
"eject": "react-scripts eject"
"lint": "eslint src"
},
"eslintConfig": {
"extends": [
@@ -53,15 +54,19 @@
]
},
"devDependencies": {
"@rsbuild/core": "^1.4.3",
"@rsbuild/plugin-react": "^1.3.3",
"@rsbuild/plugin-svgr": "^1.2.0",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"eslint": "^8.57.1",
"eslint-config-react-app": "^7.0.1",
"i18next-resources-for-ts": "1.4.0",
"jest": "^27.5.1",
"jest-preview": "^0.3.1",
"react-scripts": "^5.0.1",
"typescript": "^4.9.5"
}
}
+5 -5
View File
@@ -2,25 +2,25 @@
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<link rel="icon" href="<%= assetPrefix %>/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<link rel="apple-touch-icon" href="<%= assetPrefix %>/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<link rel="manifest" href="<%= assetPrefix %>/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
Notice the use of <%= assetPrefix %> in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
Unlike "/favicon.ico" or "favicon.ico", "<%= assetPrefix %>/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
+10
View File
@@ -0,0 +1,10 @@
import { defineConfig } from "@rsbuild/core";
import { pluginReact } from "@rsbuild/plugin-react";
export default defineConfig({
plugins: [pluginReact()],
html: {
template: "./public/index.html",
},
server: { port: 5000 },
});
+2 -2
View File
@@ -2,7 +2,7 @@ import { cp } from "node:fs";
export async function getCalendars(userId: string, opaque_token: string) {
const response = await fetch(
`${process.env.REACT_APP_CALENDAR_BASE_URL}/dav/calendars/${userId}.json?personal=true&sharedDelegationStatus=accepted&sharedPublicSubscription=true&withRights=true`,
`${process.env.PUBLIC_CALENDAR_BASE_URL}/dav/calendars/${userId}.json?personal=true&sharedDelegationStatus=accepted&sharedPublicSubscription=true&withRights=true`,
{
headers: {
Accept: "application/calendar+json",
@@ -16,7 +16,7 @@ export async function getCalendars(userId: string, opaque_token: string) {
export async function getCalendar(id: string, opaque_token: string) {
const response = await fetch(
`${process.env.REACT_APP_CALENDAR_BASE_URL}/dav/calendars/${id}/${id}.json`,
`${process.env.PUBLIC_CALENDAR_BASE_URL}/dav/calendars/${id}/${id}.json`,
{
method: "REPORT",
headers: {
-4
View File
@@ -58,7 +58,6 @@ const CalendarSlice = createSlice({
state,
action: PayloadAction<{ calendarUid: string; event: CalendarEvent }>
) => {
console.log(action.payload);
if (!state[action.payload.calendarUid].events) {
state[action.payload.calendarUid].events = [];
}
@@ -81,10 +80,7 @@ const CalendarSlice = createSlice({
builder.addCase(
getCalendarsAsync.fulfilled,
(state, action: PayloadAction<Record<string, Calendars>>) => {
console.log("ony est!!!!: ", action.payload);
console.log(Object.keys(action.payload));
Object.keys(action.payload).forEach((id) => {
console.log(id);
state[id] = action.payload[id];
});
}
-1
View File
@@ -64,7 +64,6 @@ export function parseCalendarEvent(
}
if (!event.uid || !event.start) {
console.log(event);
throw new Error(`Missing required event fields`);
}
-1
View File
@@ -20,7 +20,6 @@ export function CallbackResume() {
const runCallback = async () => {
try {
const data = await Callback(saved?.code_verifier, saved?.state);
console.log("data:", data);
dispatch(setUserData(data?.userinfo));
dispatch(setTokens(data?.tokenSet));
dispatch(getCalendarsAsync(data?.tokenSet.access_token || ""));
+8 -11
View File
@@ -1,19 +1,18 @@
import * as client from "openid-client";
export const clientConfig = {
url: process.env.REACT_APP_SSO_BASE_URL || "",
client_id: process.env.REACT_APP_SSO_CLIENT_ID || "",
client_secret: process.env.REACT_APP_SSO_CLIENT_SECRET || "",
scope: process.env.REACT_APP_SSO_SCOPE || "",
redirect_uri: process.env.REACT_APP_SSO_REDIRECT_URI || "",
response_type: process.env.REACT_APP_SSO_RESPONSE_TYPE || "",
code_challenge_method: process.env.REACT_APP_SSO_CODE_CHALLENGE_METHOD || "",
url: process.env.PUBLIC_SSO_BASE_URL || "",
client_id: process.env.PUBLIC_SSO_CLIENT_ID || "",
client_secret: process.env.PUBLIC_SSO_CLIENT_SECRET || "",
scope: process.env.PUBLIC_SSO_SCOPE || "",
redirect_uri: process.env.PUBLIC_SSO_REDIRECT_URI || "",
response_type: process.env.PUBLIC_SSO_RESPONSE_TYPE || "",
code_challenge_method: process.env.PUBLIC_SSO_CODE_CHALLENGE_METHOD || "",
post_logout_redirect_uri:
process.env.REACT_APP_SSO_POST_LOGOUT_REDIRECT || "",
process.env.PUBLIC_SSO_POST_LOGOUT_REDIRECT || "",
};
export async function getClientConfig() {
console.log(process.env.REACT_APP_SSO_BASE_URL)
return await client.discovery(
new URL(clientConfig.url),
clientConfig.client_id,
@@ -37,7 +36,6 @@ export async function Auth() {
parameters.state = state;
}
let redirectTo = client.buildAuthorizationUrl(openIdClientConfig, parameters);
console.log(redirectTo);
return { redirectTo, code_verifier, state };
}
@@ -58,7 +56,6 @@ export async function Callback(code_verifier: string, state: any) {
console.log("Callback URL:", currentUrl.toString());
console.log("Code verifier:", code_verifier);
console.log("State:", state);
const tokenSet = await client.authorizationCodeGrant(
openIdClientConfig,
+1 -1
View File
@@ -1,6 +1,6 @@
export default async function getOpenPaasUserId(opaque_token: string) {
const response = await fetch(
`${process.env.REACT_APP_CALENDAR_BASE_URL}/api/user`,
`${process.env.PUBLIC_CALENDAR_BASE_URL}/api/user`,
{
headers: {
Authorization: `Bearer ${opaque_token}`,
-1
View File
@@ -18,7 +18,6 @@ export const userSlice = createSlice({
state.organiserData.cal_address = `mailto:${action.payload.email}`;
},
setTokens: (state, action) => {
console.log(state.tokens);
state.tokens = action.payload;
},
},