import { HomePage } from '../pages/home'
import { CreatePage } from '../pages/create'
import { LandingPage } from '../pages/landing/LandingPage'
import { Login } from '../pages/login'
import { ProfilePage } from '../pages/profile'
import { hexToNpub } from '../utils'
import { SignPage } from '../pages/sign'
import { VerifyPage } from '../pages/verify'
import { ProfileSettingsPage } from '../pages/settings/profile'
import { RelaysPage } from '../pages/relays'

export const appPrivateRoutes = {
  homePage: '/',
  create: '/create',
  sign: '/sign',
  verify: '/verify',
  profileSettings: '/settings/profile/:npub',
  relays: '/relays'
}

export const appPublicRoutes = {
  profile: '/profile/:npub',
  landingPage: '/',
  login: '/login',
  help: 'https://help.sigit.io'
}

export const getProfileRoute = (hexKey: string) =>
  appPublicRoutes.profile.replace(':npub', hexToNpub(hexKey))

export const getProfileSettingsRoute = (hexKey: string) =>
  appPrivateRoutes.profileSettings.replace(':npub', hexToNpub(hexKey))

export const publicRoutes = [
  {
    path: appPublicRoutes.landingPage,
    hiddenWhenLoggedIn: true,
    element: <LandingPage />
  },
  {
    path: appPublicRoutes.login,
    hiddenWhenLoggedIn: true,
    element: <Login />
  },
  {
    path: appPublicRoutes.profile,
    element: <ProfilePage />
  }
]

export const privateRoutes = [
  {
    path: appPrivateRoutes.homePage,
    element: <HomePage />
  },
  {
    path: appPrivateRoutes.create,
    element: <CreatePage />
  },
  {
    path: appPrivateRoutes.sign,
    element: <SignPage />
  },
  {
    path: appPrivateRoutes.verify,
    element: <VerifyPage />
  },
  {
    path: appPrivateRoutes.profileSettings,
    element: <ProfileSettingsPage />
  },
  { path: appPrivateRoutes.relays, element: <RelaysPage /> }
]
