diff --git a/apps/backoffice/src/app/(public)/layout.tsx b/apps/backoffice/src/app/(public)/layout.tsx
deleted file mode 100644
index 2d8a74d..0000000
--- a/apps/backoffice/src/app/(public)/layout.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import { FC, ReactElement } from 'react';
-import { Outlet } from 'react-router-dom';
-
-export const AppLayout: FC = (): ReactElement => {
- return (
-
- The page you are looking for doesn't exist or has been moved. -
- - Go Back Home - -- Sorry, an unexpected error has occurred. -
-{errorMessage}
-- Mohon tunggu sebentar, kami sedang memproses login Anda. -
-+ Mohon tunggu sebentar, kami sedang memproses login Anda. +
+Don't have an account? Sign up
+Don't have an account? Sign up
By signing in, you agree to our Terms of Service and Privacy Policy
Loading profile...
- ); + ) } if (error) { @@ -73,7 +76,7 @@ const ProfileContent: FC = (): ReactElement => {Please try again later.
- ); + ) } return ( @@ -126,7 +129,5 @@ const ProfileContent: FC = (): ReactElement => { showNotification={showNotification} /> - ); -}; - -export default Components; + ) +} diff --git a/apps/dimentorin/src/app/(public)/profile/[id]/page.tsx b/apps/dimentorin/src/routes/_site/profile_/$id.tsx similarity index 76% rename from apps/dimentorin/src/app/(public)/profile/[id]/page.tsx rename to apps/dimentorin/src/routes/_site/profile_/$id.tsx index e067535..f7a2c19 100644 --- a/apps/dimentorin/src/app/(public)/profile/[id]/page.tsx +++ b/apps/dimentorin/src/routes/_site/profile_/$id.tsx @@ -1,17 +1,18 @@ -'use client'; +import { createFileRoute } from '@tanstack/react-router' +import { FC, ReactElement, useState } from 'react' +import { ProfileForm, ProfileSidebar, ProfileHeader } from './_components' +import { ArrowLeftOutlined } from '@ant-design/icons' +import { Button } from '@imphnen-frontend-service/ui/atoms' +import { NotificationModal, NotificationType } from './_components/modals/notification-modal' +import { ProfileProvider, useProfile } from './_components/contexts/profile-context' +import { EditProfileModal } from './_components/modals/edit-profile-modal' -import { FC, ReactElement, useState } from 'react'; -import { useParams } from 'react-router-dom'; -import { ProfileForm, ProfileSidebar, ProfileHeader } from '../_components'; -import { ArrowLeftOutlined } from '@ant-design/icons'; -import { Button } from '@imphnen-frontend-service/ui/atoms'; -import { NotificationModal, NotificationType } from '../_components/modals/notification-modal'; -import { ProfileProvider, useProfile } from '../_components/contexts/profile-context'; -import { EditProfileModal } from '../_components/modals/edit-profile-modal'; +export const Route = createFileRoute('/_site/profile/$id')({ + component: ProfileByIdPage, +}) -const ProfileByIdPage: FC = (): ReactElement => { - const params = useParams(); - const id = (params && params.id) ? params.id as string : undefined; +function ProfileByIdPage(): ReactElement { + const { id } = Route.useParams() if (!id) { return ( @@ -20,39 +21,39 @@ const ProfileByIdPage: FC = (): ReactElement => {Profile ID not found.
- ); + ) } return (Loading profile...
- ); + ) } if (error) { @@ -96,7 +97,7 @@ const ProfileByIdContent: FC = (): ReactElement => {Profile not found or you don't have permission to view it.
- ); + ) } return ( @@ -158,7 +159,5 @@ const ProfileByIdContent: FC = (): ReactElement => { /> )} - ); -}; - -export default ProfileByIdPage; + ) +} diff --git a/apps/dimentorin/src/app/(public)/profile/_components/buttons/edit-section-button.tsx b/apps/dimentorin/src/routes/_site/profile_/_components/buttons/edit-section-button.tsx similarity index 100% rename from apps/dimentorin/src/app/(public)/profile/_components/buttons/edit-section-button.tsx rename to apps/dimentorin/src/routes/_site/profile_/_components/buttons/edit-section-button.tsx diff --git a/apps/dimentorin/src/app/(public)/profile/_components/buttons/index.ts b/apps/dimentorin/src/routes/_site/profile_/_components/buttons/index.ts similarity index 100% rename from apps/dimentorin/src/app/(public)/profile/_components/buttons/index.ts rename to apps/dimentorin/src/routes/_site/profile_/_components/buttons/index.ts diff --git a/apps/dimentorin/src/app/(public)/profile/_components/buttons/modal-button.tsx b/apps/dimentorin/src/routes/_site/profile_/_components/buttons/modal-button.tsx similarity index 100% rename from apps/dimentorin/src/app/(public)/profile/_components/buttons/modal-button.tsx rename to apps/dimentorin/src/routes/_site/profile_/_components/buttons/modal-button.tsx diff --git a/apps/dimentorin/src/app/(public)/profile/_components/contexts/index.ts b/apps/dimentorin/src/routes/_site/profile_/_components/contexts/index.ts similarity index 100% rename from apps/dimentorin/src/app/(public)/profile/_components/contexts/index.ts rename to apps/dimentorin/src/routes/_site/profile_/_components/contexts/index.ts diff --git a/apps/dimentorin/src/app/(public)/profile/_components/contexts/profile-context.tsx b/apps/dimentorin/src/routes/_site/profile_/_components/contexts/profile-context.tsx similarity index 98% rename from apps/dimentorin/src/app/(public)/profile/_components/contexts/profile-context.tsx rename to apps/dimentorin/src/routes/_site/profile_/_components/contexts/profile-context.tsx index 70ef3cc..f9c7cb8 100644 --- a/apps/dimentorin/src/app/(public)/profile/_components/contexts/profile-context.tsx +++ b/apps/dimentorin/src/routes/_site/profile_/_components/contexts/profile-context.tsx @@ -1,7 +1,7 @@ 'use client'; import React, { createContext, useContext, useMemo, useCallback } from 'react'; -import { useParams } from 'react-router-dom'; +import { useParams } from '@tanstack/react-router'; import { useQueryClient } from '@tanstack/react-query'; import { useAuthStore, @@ -65,7 +65,7 @@ export const ProfileProvider: React.FC- The page you are looking for doesn't exist or has been moved. -
- - Go Back Home - -{error}
-- GitHub login requires a public email address. Please follow these steps: -
-- Alternatively, you can sign up using email and password instead. -
-- Redirecting to login page in 3 seconds... -
-Please wait
-- We've sent a password reset link to {email} -
-- Click the link in the email to reset your password. The link will - expire in 1 hour. -
- - -- No worries, we'll send you reset instructions -
-- Verifying reset link... -
-- Enter your new password below -
-- The registration period for this hackathon has ended. -
-- Thank you for your interest! Registration closed on November 30, 2025 at 23:29 WIB. -
- - -- We've sent an activation link to{' '} - {registeredEmail} -
-- Click the link in the email to activate your account. The link - will expire in 24 hours. -
- -- Don't forget to check your spam folder if you don't see the - email. -
-- Join the hackathon community -
-{error}
-- Make sure your GitHub email is{' '} - - set to public - {' '} - for GitHub sign up to work. -
- -- Already have an account?{' '} - - Sign in - -
-- By signing up, you agree to our Terms of Service and Privacy Policy -
-- Sorry, an unexpected error has occurred. -
-{errorMessage}
-Loading...
-- Update your photo and name -
-Update your photo and name
+Only the team leader can edit team information
-Only the team leader can manage members
-Your team hasn't submitted a project
-{team?.name}
-Only the team leader can submit projects
-{String(error)}
)} -{error}
+GitHub login requires a public email address. Please follow these steps:
+Alternatively, you can sign up using email and password instead.
+Redirecting to login page in 3 seconds...
+Please wait
+We've sent a password reset link to {email}
+Click the link in the email to reset your password. The link will expire in 1 hour.
+No worries, we'll send you reset instructions
+Verifying reset link...
+Enter your new password below
+The registration period for this hackathon has ended.
+Thank you for your interest! Registration closed on November 30, 2025 at 23:29 WIB.
+ +We've sent an activation link to {registeredEmail}
+Click the link in the email to activate your account. The link will expire in 24 hours.
+Don't forget to check your spam folder if you don't see the email.
+Join the hackathon community
+{error}
++ Make sure your GitHub email is set to public for GitHub sign up to work. +
+Already have an account? Sign in
+By signing up, you agree to our Terms of Service and Privacy Policy
+{error || 'The certificate ID is invalid or malformed.'}
-The user associated with this certificate could not be found.
-{error || 'The certificate ID is invalid or malformed.'}
-Please try again later.
-This team is not listed as a hackathon winner.
-The team associated with this certificate could not be loaded.
-