Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
80ff262
chore: added `webuntis` package
Dev-LeChacal Jan 31, 2026
7a32ad0
chore: create index.ts file
Dev-LeChacal Jan 31, 2026
aaee1a8
chore: implemented `SchoolServicePlugin`
Dev-LeChacal Jan 31, 2026
af52a24
chore: added `WEBUNTIS` to types
Dev-LeChacal Jan 31, 2026
22674b8
chore: created refresh.ts file
Dev-LeChacal Jan 31, 2026
7da3c5e
chore: added `WebUntis` to `SchoolServicePlugin`
Dev-LeChacal Jan 31, 2026
46d1fff
chore: renamed `WebUntis` to `WebUntisService`
Dev-LeChacal Jan 31, 2026
87a5419
fix: resolved packages conflicts
Dev-LeChacal Jan 31, 2026
9e398b7
chore: edited refresh.ts for webuntis
Dev-LeChacal Jan 31, 2026
92c1bf3
feat: added Web Untis to `Supported Services`
Dev-LeChacal Jan 31, 2026
c998141
feat: added Web Untis logo
Dev-LeChacal Jan 31, 2026
14b6eb8
chore: added `WebUntisService` to refresh account
Dev-LeChacal Jan 31, 2026
acdb8fe
chore: created credentials.tsx file
Dev-LeChacal Jan 31, 2026
e3ec514
feat: same credentials screen as ED
Dev-LeChacal Jan 31, 2026
27706e6
feat: added Web Untis to layout
Dev-LeChacal Jan 31, 2026
12725da
chore: edited path for Web Untis
Dev-LeChacal Jan 31, 2026
44f593e
feat: added INPUT_BASE_URL fr trad
Dev-LeChacal Jan 31, 2026
2fa419a
feat: edited credential screen for `Web Untis`
Dev-LeChacal Jan 31, 2026
c4f61be
fix: added service to if statements
Dev-LeChacal Jan 31, 2026
42773dc
feat: refresh and timetable
Dev-LeChacal Jan 31, 2026
efb882f
feat: `Web Untis` timetable
Dev-LeChacal Jan 31, 2026
39ebe0d
chore: created homework.ts and news.ts
Dev-LeChacal Jan 31, 2026
085b284
fix: remove error with undefined
Dev-LeChacal Jan 31, 2026
b7b6ece
fix: null check on currentPeriod before get name
Dev-LeChacal Jan 31, 2026
ecfbaa1
chore: eslint removed space
Dev-LeChacal Jan 31, 2026
0d9e76f
chore: removed unused methods
Dev-LeChacal Jan 31, 2026
21b6d2d
chore: created attendance.ts
Dev-LeChacal Jan 31, 2026
0fc54e0
feat: edited homework.ts
Dev-LeChacal Jan 31, 2026
f2a4193
feat: added attendance, news, homeworks, timetable
Dev-LeChacal Jan 31, 2026
877fd1f
feat: added news fetcher
Dev-LeChacal Jan 31, 2026
5f04e4a
feat: added news to service
Dev-LeChacal Jan 31, 2026
9372a43
feat: added ERROR_AUTHENTICATION and ERROR_MISSING_FIELDS to `fr`
Dev-LeChacal Feb 1, 2026
44af113
feat: ERROR_WEBUNTIS_LOGIN `fr` translation
Dev-LeChacal Feb 1, 2026
db3e787
feat: simplified credentials screen
Dev-LeChacal Feb 1, 2026
efac87c
chore: removed unused weekNumber
Dev-LeChacal Feb 1, 2026
8c16096
feat: added `isCourseExam`
Dev-LeChacal Feb 1, 2026
14bbef0
Merge branch 'PapillonApp:main' into feat/web-untis-service
Dev-LeChacal Feb 4, 2026
f7b9f49
chore: removed `webuntis` package
Dev-LeChacal Feb 4, 2026
1861317
chore: added `webuntis-client` package
Dev-LeChacal Feb 4, 2026
0d5234f
fixed: credentials use new package
Dev-LeChacal Feb 4, 2026
e7f45c4
chore: update `webuntis-client`
Dev-LeChacal Feb 4, 2026
9008c00
chore: use new functions
Dev-LeChacal Feb 4, 2026
4af8e11
fixed: using new package
Dev-LeChacal Feb 4, 2026
c284c73
chore: getting session from login directly
Dev-LeChacal Feb 4, 2026
9d90f1e
fixed: using new package
Dev-LeChacal Feb 4, 2026
6cd60c9
fixed: index in webuntis use new package
Dev-LeChacal Feb 4, 2026
9e3a04e
feat: removed news
Dev-LeChacal Feb 4, 2026
9756147
not fixed: using new package in timetable
Dev-LeChacal Feb 6, 2026
2ef3a99
Revert "not fixed: using new package in timetable"
Dev-LeChacal Feb 6, 2026
c5ce997
Merge branch 'PapillonApp:main' into feat/web-untis-service
Dev-LeChacal Feb 7, 2026
d705d1c
chore: updated to new version
Dev-LeChacal Feb 7, 2026
a33318d
fixed: using fixed package
Dev-LeChacal Feb 7, 2026
e84116b
not fixed: showing only one week on the timetable
Dev-LeChacal Feb 7, 2026
c6cb6d2
fixed: added a null check and fixed it 😭 ?
Dev-LeChacal Feb 8, 2026
f4cf280
feat: using display name for subject and room
Dev-LeChacal Feb 8, 2026
c6d844a
feat: removed attendance
Dev-LeChacal Feb 8, 2026
59027b2
fixed: homework was returning a NaN date
Dev-LeChacal Feb 8, 2026
a3eba89
chore: removed not necessary null check
Dev-LeChacal Feb 8, 2026
d0fbd69
chore: update package version
Dev-LeChacal Feb 9, 2026
e8a0061
chore: removed comments
Dev-LeChacal Feb 9, 2026
5546802
chore: renamed service to `WebUntis`
Dev-LeChacal Feb 9, 2026
952e3fa
fix: using new version of package
Dev-LeChacal Feb 9, 2026
3d34320
chore: moved null check
Dev-LeChacal Feb 9, 2026
f719eae
fix: removed crashing import
Dev-LeChacal Feb 9, 2026
79f1ebc
fix: wrong type for client
Dev-LeChacal Feb 9, 2026
5b33c8c
chore: formatted code while searching error
Dev-LeChacal Feb 9, 2026
d12eb7d
fix: await that wasn't there
Dev-LeChacal Feb 9, 2026
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
275 changes: 140 additions & 135 deletions app/(onboarding)/_layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,140 +6,145 @@ import { Stack } from '@/utils/native/AnimatedNavigator';
import { screenOptions } from "@/utils/theme/ScreenOptions";

export default function OnboardingLayout() {
const newScreenOptions = React.useMemo(() => ({
...screenOptions,
headerShown: false,
headerBackVisible: true,
headerTitle: '',
gestureEnabled: false,
headerTransparent: true,
headerTintColor: "#FFFFFF",
headerBackButtonDisplayMode: "minimal",
headerBackButtonMenuEnabled: false
}), []);
const newScreenOptions = React.useMemo(() => ({
...screenOptions,
headerShown: false,
headerBackVisible: true,
headerTitle: '',
gestureEnabled: false,
headerTransparent: true,
headerTintColor: "#FFFFFF",
headerBackButtonDisplayMode: "minimal",
headerBackButtonMenuEnabled: false
}), []);

return (
<View style={{ flex: 1, backgroundColor: "black" }}>
<Stack>
<Stack.Screen
name="welcome"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="serviceSelection"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="school/method"
options={{ ...newScreenOptions }}
initialParams={{ service: Services.PRONOTE }}
/>
<Stack.Screen
name="school/map"
options={{ ...newScreenOptions }}
initialParams={{ service: Services.PRONOTE, method: "automatic", city: "Paris" }}
/>
<Stack.Screen
name="school/search"
options={{ ...newScreenOptions }}
initialParams={{ service: Services.PRONOTE }}
/>
<Stack.Screen
name="end/color"
options={{ ...newScreenOptions }}
initialParams={{ accountId: "" }}
/>
<Stack.Screen
name="restaurants/method"
options={{ ...newScreenOptions }}
initialParams={{ action: "addAccount" }}
/>
<Stack.Screen
name="university/method"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="university/multi/credentials"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="university/lannion/credentials"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="pronote/url"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="pronote/webview"
options={{ ...newScreenOptions }}
initialParams={{ url: "", serviceId: undefined }}
/>
<Stack.Screen
name="pronote/credentials"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="ecoledirecte/credentials"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="izly/credentials"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="pronote/qrcode"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="pronote/2fa"
options={{ ...newScreenOptions }}
initialParams={{ error: {}, session: {}, device: "" }}
/>
<Stack.Screen
name="turboself/credentials"
options={{ ...newScreenOptions }}
initialParams={{ action: "addAccount" }}
/>
<Stack.Screen
name="turboself/hostSelector"
options={{ ...newScreenOptions }}
initialParams={{ siblings: [], username: "", password: "", action: "addAccount" }}
/>
<Stack.Screen
name="ard/credentials"
options={{ ...newScreenOptions }}
initialParams={{ action: "addAccount" }}
/>
<Stack.Screen
name="alise/credentials"
options={{ ...newScreenOptions }}
initialParams={{ action: "addAccount" }}
/>
<Stack.Screen
name="skolengo/webview"
options={{ ...newScreenOptions }}
initialParams={{ ref: {} }}
/>
<Stack.Screen
name="university/appscho/list"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="university/appscho/webview"
options={{ ...newScreenOptions }}
initialParams={{ instanceId: "" }}
/>
<Stack.Screen
name="university/appscho/credentials"
options={{ ...newScreenOptions }}
initialParams={{ instanceId: "" }}
/>
</Stack>
</View>
);
return (
<View style={{ flex: 1, backgroundColor: "black" }}>
<Stack>
<Stack.Screen
name="welcome"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="serviceSelection"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="school/method"
options={{ ...newScreenOptions }}
initialParams={{ service: Services.PRONOTE }}
/>
<Stack.Screen
name="school/map"
options={{ ...newScreenOptions }}
initialParams={{ service: Services.PRONOTE, method: "automatic", city: "Paris" }}
/>
<Stack.Screen
name="school/search"
options={{ ...newScreenOptions }}
initialParams={{ service: Services.PRONOTE }}
/>
<Stack.Screen
name="end/color"
options={{ ...newScreenOptions }}
initialParams={{ accountId: "" }}
/>
<Stack.Screen
name="restaurants/method"
options={{ ...newScreenOptions }}
initialParams={{ action: "addAccount" }}
/>
<Stack.Screen
name="university/method"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="university/multi/credentials"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="university/lannion/credentials"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="pronote/url"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="pronote/webview"
options={{ ...newScreenOptions }}
initialParams={{ url: "", serviceId: undefined }}
/>
<Stack.Screen
name="pronote/credentials"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="ecoledirecte/credentials"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="webuntis/credentials"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="izly/credentials"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="pronote/qrcode"
options={{ ...newScreenOptions }}
/>
<Stack.Screen
name="pronote/2fa"
options={{ ...newScreenOptions }}
initialParams={{ error: {}, session: {}, device: "" }}
/>
<Stack.Screen
name="turboself/credentials"
options={{ ...newScreenOptions }}
initialParams={{ action: "addAccount" }}
/>
<Stack.Screen
name="turboself/hostSelector"
options={{ ...newScreenOptions }}
initialParams={{ siblings: [], username: "", password: "", action: "addAccount" }}
/>
<Stack.Screen
name="ard/credentials"
options={{ ...newScreenOptions }}
initialParams={{ action: "addAccount" }}
/>
<Stack.Screen
name="alise/credentials"
options={{ ...newScreenOptions }}
initialParams={{ action: "addAccount" }}
/>
<Stack.Screen
name="skolengo/webview"
options={{ ...newScreenOptions }}
initialParams={{ ref: {} }}
/>
<Stack.Screen
name="university/appscho/list"
options={{ ...newScreenOptions }}
initialParams={{ url: "", previousPage: "map" }}
/>
<Stack.Screen
name="university/appscho/webview"
options={{ ...newScreenOptions }}
initialParams={{ instanceId: "" }}
/>
<Stack.Screen
name="university/appscho/credentials"
options={{ ...newScreenOptions }}
initialParams={{ instanceId: "" }}
/>
</Stack>
</View>
);
}
11 changes: 11 additions & 0 deletions app/(onboarding)/utils/constants.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,17 @@ export function GetSupportedServices(redirect: (path: { pathname: string, option
variant: 'service' as const,
color: 'light' as const,
},
{
name: "webuntis",
title: "Web Untis",
type: "main",
image: require("@/assets/images/service_webuntis.png"),
onPress: () => {
redirect({ pathname: './webuntis/credentials', options: { service: Services.WEBUNTIS } });
},
variant: 'service' as const,
color: 'light' as const,
},
{
name: "separator",
title: "separator",
Expand Down
Loading