diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.prettierignore b/.prettierignore old mode 100644 new mode 100755 diff --git a/.prettierrc b/.prettierrc old mode 100644 new mode 100755 diff --git a/Dockerfile b/Dockerfile old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/eslint.config.mjs b/eslint.config.mjs old mode 100644 new mode 100755 diff --git a/next.config.ts b/next.config.ts old mode 100644 new mode 100755 diff --git a/package-lock.json b/package-lock.json old mode 100644 new mode 100755 diff --git a/package.json b/package.json old mode 100644 new mode 100755 diff --git a/postcss.config.mjs b/postcss.config.mjs old mode 100644 new mode 100755 diff --git a/public/file.svg b/public/file.svg old mode 100644 new mode 100755 diff --git a/public/globe.svg b/public/globe.svg old mode 100644 new mode 100755 diff --git a/public/next.svg b/public/next.svg old mode 100644 new mode 100755 diff --git a/public/vercel.svg b/public/vercel.svg old mode 100644 new mode 100755 diff --git a/public/window.svg b/public/window.svg old mode 100644 new mode 100755 diff --git a/src/app/dashboard/layout.tsx b/src/app/dashboard/layout.tsx old mode 100644 new mode 100755 diff --git a/src/app/dashboard/membership/page.tsx b/src/app/dashboard/membership/page.tsx old mode 100644 new mode 100755 diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx old mode 100644 new mode 100755 diff --git a/src/app/dashboard/server/[id]/page.tsx b/src/app/dashboard/server/[id]/page.tsx old mode 100644 new mode 100755 diff --git a/src/app/favicon.ico b/src/app/favicon.ico old mode 100644 new mode 100755 diff --git a/src/app/globals.css b/src/app/globals.css old mode 100644 new mode 100755 diff --git a/src/app/layout.tsx b/src/app/layout.tsx old mode 100644 new mode 100755 diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx old mode 100644 new mode 100755 diff --git a/src/app/page.tsx b/src/app/page.tsx old mode 100644 new mode 100755 diff --git a/src/components/configuration/AssistRulesEditor.tsx b/src/components/configuration/AssistRulesEditor.tsx old mode 100644 new mode 100755 diff --git a/src/components/configuration/ConfigurationEditor.tsx b/src/components/configuration/ConfigurationEditor.tsx old mode 100644 new mode 100755 diff --git a/src/components/configuration/EventConfigEditor.tsx b/src/components/configuration/EventConfigEditor.tsx old mode 100644 new mode 100755 diff --git a/src/components/configuration/EventRulesEditor.tsx b/src/components/configuration/EventRulesEditor.tsx old mode 100644 new mode 100755 diff --git a/src/components/configuration/ServerSettingsEditor.tsx b/src/components/configuration/ServerSettingsEditor.tsx old mode 100644 new mode 100755 index 0247255..671f5cb --- a/src/components/configuration/ServerSettingsEditor.tsx +++ b/src/components/configuration/ServerSettingsEditor.tsx @@ -98,7 +98,7 @@ export function ServerSettingsEditor({ serverId, config }: ServerSettingsEditorP const formDataObj = new FormData(); Object.entries(formData).forEach(([key, value]) => { - formDataObj.append(key, value.toString()); + formDataObj.append(key, value?.toString() ?? ''); }); if (restart) { formDataObj.append('restart', 'on'); diff --git a/src/components/leaderboard/LeaderboardManager.tsx b/src/components/leaderboard/LeaderboardManager.tsx old mode 100644 new mode 100755 diff --git a/src/components/leaderboard/LeaderboardStandings.tsx b/src/components/leaderboard/LeaderboardStandings.tsx old mode 100644 new mode 100755 diff --git a/src/components/leaderboard/editors/DriversEditor.tsx b/src/components/leaderboard/editors/DriversEditor.tsx old mode 100644 new mode 100755 diff --git a/src/components/leaderboard/editors/FlPointsEditor.tsx b/src/components/leaderboard/editors/FlPointsEditor.tsx old mode 100644 new mode 100755 diff --git a/src/components/leaderboard/editors/PointsTableEditor.tsx b/src/components/leaderboard/editors/PointsTableEditor.tsx old mode 100644 new mode 100755 diff --git a/src/components/leaderboard/editors/TracksEditor.tsx b/src/components/leaderboard/editors/TracksEditor.tsx old mode 100644 new mode 100755 diff --git a/src/components/login/LoginForm.tsx b/src/components/login/LoginForm.tsx old mode 100644 new mode 100755 diff --git a/src/components/membership/CreateUserModal.tsx b/src/components/membership/CreateUserModal.tsx old mode 100644 new mode 100755 diff --git a/src/components/membership/DeleteUserModal.tsx b/src/components/membership/DeleteUserModal.tsx old mode 100644 new mode 100755 diff --git a/src/components/membership/UserManagementTable.tsx b/src/components/membership/UserManagementTable.tsx old mode 100644 new mode 100755 diff --git a/src/components/providers/QueryProvider.tsx b/src/components/providers/QueryProvider.tsx old mode 100644 new mode 100755 diff --git a/src/components/server/CreateServerModal.tsx b/src/components/server/CreateServerModal.tsx old mode 100644 new mode 100755 diff --git a/src/components/server/DeleteServerModal.tsx b/src/components/server/DeleteServerModal.tsx old mode 100644 new mode 100755 diff --git a/src/components/server/ServerCard.tsx b/src/components/server/ServerCard.tsx old mode 100644 new mode 100755 diff --git a/src/components/server/ServerConfigurationTabs.tsx b/src/components/server/ServerConfigurationTabs.tsx old mode 100644 new mode 100755 diff --git a/src/components/server/ServerCreationPopup.tsx b/src/components/server/ServerCreationPopup.tsx old mode 100644 new mode 100755 index 08fb79b..7f1dbfa --- a/src/components/server/ServerCreationPopup.tsx +++ b/src/components/server/ServerCreationPopup.tsx @@ -78,15 +78,15 @@ export function ServerCreationPopup({ setEntries((prev) => [...prev, newEntry]); }, []); - const scrollToBottom = () => { + const scrollToBottom = useCallback(() => { if (consoleRef.current && !isMinimized && isConsoleVisible) { consoleRef.current.scrollTop = consoleRef.current.scrollHeight; } - }; + }, [isMinimized, isConsoleVisible]); useEffect(() => { scrollToBottom(); - }, [entries, isMinimized, isConsoleVisible]); + }, [entries, scrollToBottom]); useEffect(() => { if (serverId && isOpen) { diff --git a/src/components/server/ServerCreationPopupContainer.tsx b/src/components/server/ServerCreationPopupContainer.tsx old mode 100644 new mode 100755 diff --git a/src/components/server/ServerHeader.tsx b/src/components/server/ServerHeader.tsx old mode 100644 new mode 100755 diff --git a/src/components/server/ServerListWithActions.tsx b/src/components/server/ServerListWithActions.tsx old mode 100644 new mode 100755 diff --git a/src/components/statistics/DailyActivityChart.tsx b/src/components/statistics/DailyActivityChart.tsx old mode 100644 new mode 100755 diff --git a/src/components/statistics/PlayerCountChart.tsx b/src/components/statistics/PlayerCountChart.tsx old mode 100644 new mode 100755 diff --git a/src/components/statistics/RecentSessions.tsx b/src/components/statistics/RecentSessions.tsx old mode 100644 new mode 100755 diff --git a/src/components/statistics/SessionTypesChart.tsx b/src/components/statistics/SessionTypesChart.tsx old mode 100644 new mode 100755 diff --git a/src/components/statistics/StatCard.tsx b/src/components/statistics/StatCard.tsx old mode 100644 new mode 100755 diff --git a/src/components/statistics/StatisticsDashboard.tsx b/src/components/statistics/StatisticsDashboard.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/Button.tsx b/src/components/ui/Button.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/Input.tsx b/src/components/ui/Input.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/LoadingSpinner.tsx b/src/components/ui/LoadingSpinner.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/LogoutButton.tsx b/src/components/ui/LogoutButton.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/Modal.tsx b/src/components/ui/Modal.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/Pagination.tsx b/src/components/ui/Pagination.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/RefreshButton.tsx b/src/components/ui/RefreshButton.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/Select.tsx b/src/components/ui/Select.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/SteamCMDNotification.tsx b/src/components/ui/SteamCMDNotification.tsx old mode 100644 new mode 100755 diff --git a/src/components/ui/Toast.tsx b/src/components/ui/Toast.tsx old mode 100644 new mode 100755 diff --git a/src/components/websocket/WebSocketInitializer.tsx b/src/components/websocket/WebSocketInitializer.tsx old mode 100644 new mode 100755 diff --git a/src/lib/actions/auth.ts b/src/lib/actions/auth.ts old mode 100644 new mode 100755 diff --git a/src/lib/actions/configuration.ts b/src/lib/actions/configuration.ts old mode 100644 new mode 100755 diff --git a/src/lib/actions/leaderboard.ts b/src/lib/actions/leaderboard.ts old mode 100644 new mode 100755 diff --git a/src/lib/actions/membership.ts b/src/lib/actions/membership.ts old mode 100644 new mode 100755 diff --git a/src/lib/actions/server-management.ts b/src/lib/actions/server-management.ts old mode 100644 new mode 100755 diff --git a/src/lib/actions/servers.ts b/src/lib/actions/servers.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/client/base.ts b/src/lib/api/client/base.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/client/hooks.ts b/src/lib/api/client/hooks.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/client/query-client.ts b/src/lib/api/client/query-client.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/server/auth.ts b/src/lib/api/server/auth.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/server/base.ts b/src/lib/api/server/base.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/server/configuration.ts b/src/lib/api/server/configuration.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/server/leaderboard.ts b/src/lib/api/server/leaderboard.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/server/lookups.ts b/src/lib/api/server/lookups.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/server/membership.ts b/src/lib/api/server/membership.ts old mode 100644 new mode 100755 index b14fa17..c350e34 --- a/src/lib/api/server/membership.ts +++ b/src/lib/api/server/membership.ts @@ -1,4 +1,3 @@ -import { use } from 'react'; import { fetchServerAPI } from './base'; import { User, Role, userSchema, UserCreate, userCreateSchema, roleSchema } from '@/lib/schemas'; diff --git a/src/lib/api/server/servers.ts b/src/lib/api/server/servers.ts old mode 100644 new mode 100755 diff --git a/src/lib/api/server/statistics.ts b/src/lib/api/server/statistics.ts old mode 100644 new mode 100755 diff --git a/src/lib/auth/server.ts b/src/lib/auth/server.ts old mode 100644 new mode 100755 diff --git a/src/lib/context/ServerCreationPopupContext.tsx b/src/lib/context/ServerCreationPopupContext.tsx old mode 100644 new mode 100755 diff --git a/src/lib/context/SteamCMDContext.tsx b/src/lib/context/SteamCMDContext.tsx old mode 100644 new mode 100755 diff --git a/src/lib/schemas/config.ts b/src/lib/schemas/config.ts old mode 100644 new mode 100755 index 76b9a69..a5c1cd5 --- a/src/lib/schemas/config.ts +++ b/src/lib/schemas/config.ts @@ -23,7 +23,7 @@ export const serverTabSchema = z.enum(ServerTab); export const configurationSchema = z.object({ udpPort: z.number().min(1025).max(65535), tcpPort: z.number().min(1025).max(65535), - maxConnections: z.number().min(1).max(64), + maxConnections: z.number().min(1).max(100), lanDiscovery: z.number().min(0).max(1), registerToLobby: z.number().min(0).max(2), configVersion: z.number().min(1).max(2).default(1).optional() @@ -47,7 +47,7 @@ export type AssistRules = z.infer; export const serverSettingsSchema = z.object({ serverName: z.string().min(3).max(150), - adminPassword: z.string().min(6).max(50), + adminPassword: z.string().min(6).max(50).or(z.literal('').nullable()), carGroup: z.string().min(1).max(50), trackMedalsRequirement: z.number().min(-1).max(3), safetyRatingRequirement: z.number().min(-1).max(99), diff --git a/src/lib/schemas/index.ts b/src/lib/schemas/index.ts old mode 100644 new mode 100755 diff --git a/src/lib/schemas/leaderboard.ts b/src/lib/schemas/leaderboard.ts old mode 100644 new mode 100755 diff --git a/src/lib/schemas/lookups.ts b/src/lib/schemas/lookups.ts old mode 100644 new mode 100755 diff --git a/src/lib/schemas/server.ts b/src/lib/schemas/server.ts old mode 100644 new mode 100755 diff --git a/src/lib/schemas/statistics.ts b/src/lib/schemas/statistics.ts old mode 100644 new mode 100755 index 67dd903..4646770 --- a/src/lib/schemas/statistics.ts +++ b/src/lib/schemas/statistics.ts @@ -43,10 +43,10 @@ export const stateHistoryStatsSchema = z.object({ peakPlayers: z.number(), totalSessions: z.number(), totalPlaytime: z.number(), - playerCountOverTime: z.array(playerCountPointSchema), - sessionTypes: z.array(sessionCountSchema), - dailyActivity: z.array(dailyActivitySchema), - recentSessions: z.array(recentSessionSchema) + playerCountOverTime: z.array(playerCountPointSchema).nullable(), + sessionTypes: z.array(sessionCountSchema).nullable(), + dailyActivity: z.array(dailyActivitySchema).nullable(), + recentSessions: z.array(recentSessionSchema).nullable() }); export type StateHistoryStats = z.infer; diff --git a/src/lib/schemas/user.ts b/src/lib/schemas/user.ts old mode 100644 new mode 100755 diff --git a/src/lib/schemas/websocket.ts b/src/lib/schemas/websocket.ts old mode 100644 new mode 100755 diff --git a/src/lib/session/config.ts b/src/lib/session/config.ts old mode 100644 new mode 100755 diff --git a/src/lib/utils.ts b/src/lib/utils.ts old mode 100644 new mode 100755 diff --git a/src/lib/websocket/client.ts b/src/lib/websocket/client.ts old mode 100644 new mode 100755 diff --git a/src/lib/websocket/config.ts b/src/lib/websocket/config.ts old mode 100644 new mode 100755 diff --git a/src/lib/websocket/context.tsx b/src/lib/websocket/context.tsx old mode 100644 new mode 100755 index a76a900..fb9c1b8 --- a/src/lib/websocket/context.tsx +++ b/src/lib/websocket/context.tsx @@ -117,7 +117,7 @@ export function WebSocketProvider({ children, openToken }: WebSocketProviderProp client.associateWithServer(serverId); } }, - [client, isConnected, connect] + [client, isConnected, connect, openToken] ); const addMessageHandler = useCallback( diff --git a/tsconfig.json b/tsconfig.json old mode 100644 new mode 100755