diff --git a/www/app/[domain]/browse/page.tsx b/www/app/(app)/browse/page.tsx similarity index 100% rename from www/app/[domain]/browse/page.tsx rename to www/app/(app)/browse/page.tsx diff --git a/www/app/[domain]/browse/pagination.tsx b/www/app/(app)/browse/pagination.tsx similarity index 100% rename from www/app/[domain]/browse/pagination.tsx rename to www/app/(app)/browse/pagination.tsx diff --git a/www/app/[domain]/rooms/page.tsx b/www/app/(app)/rooms/page.tsx similarity index 99% rename from www/app/[domain]/rooms/page.tsx rename to www/app/(app)/rooms/page.tsx index 219b035c..3477118d 100644 --- a/www/app/[domain]/rooms/page.tsx +++ b/www/app/(app)/rooms/page.tsx @@ -35,7 +35,7 @@ import { Container } from "@chakra-ui/react"; import { FaEllipsisVertical, FaTrash, FaPencil } from "react-icons/fa6"; import useApi from "../../lib/useApi"; import useRoomList from "./useRoomList"; -import { DomainContext } from "../domainContext"; +import { DomainContext } from "../../domainContext"; import { Select, Options, OptionBase } from "chakra-react-select"; interface Stream { diff --git a/www/app/[domain]/rooms/useRoomList.tsx b/www/app/(app)/rooms/useRoomList.tsx similarity index 100% rename from www/app/[domain]/rooms/useRoomList.tsx rename to www/app/(app)/rooms/useRoomList.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/correct/page.tsx b/www/app/(app)/transcripts/[transcriptId]/correct/page.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/correct/page.tsx rename to www/app/(app)/transcripts/[transcriptId]/correct/page.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/correct/participantList.tsx b/www/app/(app)/transcripts/[transcriptId]/correct/participantList.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/correct/participantList.tsx rename to www/app/(app)/transcripts/[transcriptId]/correct/participantList.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/correct/soundWaveCss.tsx b/www/app/(app)/transcripts/[transcriptId]/correct/soundWaveCss.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/correct/soundWaveCss.tsx rename to www/app/(app)/transcripts/[transcriptId]/correct/soundWaveCss.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/correct/topicHeader.tsx b/www/app/(app)/transcripts/[transcriptId]/correct/topicHeader.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/correct/topicHeader.tsx rename to www/app/(app)/transcripts/[transcriptId]/correct/topicHeader.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/correct/topicPlayer.tsx b/www/app/(app)/transcripts/[transcriptId]/correct/topicPlayer.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/correct/topicPlayer.tsx rename to www/app/(app)/transcripts/[transcriptId]/correct/topicPlayer.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/correct/topicWords.tsx b/www/app/(app)/transcripts/[transcriptId]/correct/topicWords.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/correct/topicWords.tsx rename to www/app/(app)/transcripts/[transcriptId]/correct/topicWords.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/correct/types.ts b/www/app/(app)/transcripts/[transcriptId]/correct/types.ts similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/correct/types.ts rename to www/app/(app)/transcripts/[transcriptId]/correct/types.ts diff --git a/www/app/[domain]/transcripts/[transcriptId]/finalSummary.tsx b/www/app/(app)/transcripts/[transcriptId]/finalSummary.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/finalSummary.tsx rename to www/app/(app)/transcripts/[transcriptId]/finalSummary.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/page.tsx b/www/app/(app)/transcripts/[transcriptId]/page.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/page.tsx rename to www/app/(app)/transcripts/[transcriptId]/page.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx b/www/app/(app)/transcripts/[transcriptId]/record/page.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/record/page.tsx rename to www/app/(app)/transcripts/[transcriptId]/record/page.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/shareModal.tsx b/www/app/(app)/transcripts/[transcriptId]/shareModal.tsx similarity index 98% rename from www/app/[domain]/transcripts/[transcriptId]/shareModal.tsx rename to www/app/(app)/transcripts/[transcriptId]/shareModal.tsx index 339f2769..d21297de 100644 --- a/www/app/[domain]/transcripts/[transcriptId]/shareModal.tsx +++ b/www/app/(app)/transcripts/[transcriptId]/shareModal.tsx @@ -3,7 +3,7 @@ import SelectSearch from "react-select-search"; import { getZulipMessage, sendZulipMessage } from "../../../lib/zulip"; import { GetTranscript, GetTranscriptTopic } from "../../../api"; import "react-select-search/style.css"; -import { DomainContext } from "../../domainContext"; +import { DomainContext } from "../../../domainContext"; type ShareModal = { show: boolean; diff --git a/www/app/[domain]/transcripts/[transcriptId]/upload/page.tsx b/www/app/(app)/transcripts/[transcriptId]/upload/page.tsx similarity index 100% rename from www/app/[domain]/transcripts/[transcriptId]/upload/page.tsx rename to www/app/(app)/transcripts/[transcriptId]/upload/page.tsx diff --git a/www/app/[domain]/transcripts/audioInputsDropdown.tsx b/www/app/(app)/transcripts/audioInputsDropdown.tsx similarity index 100% rename from www/app/[domain]/transcripts/audioInputsDropdown.tsx rename to www/app/(app)/transcripts/audioInputsDropdown.tsx diff --git a/www/app/[domain]/transcripts/createTranscript.ts b/www/app/(app)/transcripts/createTranscript.ts similarity index 100% rename from www/app/[domain]/transcripts/createTranscript.ts rename to www/app/(app)/transcripts/createTranscript.ts diff --git a/www/app/[domain]/transcripts/disconnectedIndicator.tsx b/www/app/(app)/transcripts/disconnectedIndicator.tsx similarity index 100% rename from www/app/[domain]/transcripts/disconnectedIndicator.tsx rename to www/app/(app)/transcripts/disconnectedIndicator.tsx diff --git a/www/app/[domain]/transcripts/fileUploadButton.tsx b/www/app/(app)/transcripts/fileUploadButton.tsx similarity index 100% rename from www/app/[domain]/transcripts/fileUploadButton.tsx rename to www/app/(app)/transcripts/fileUploadButton.tsx diff --git a/www/app/[domain]/transcripts/liveTranscription.tsx b/www/app/(app)/transcripts/liveTranscription.tsx similarity index 100% rename from www/app/[domain]/transcripts/liveTranscription.tsx rename to www/app/(app)/transcripts/liveTranscription.tsx diff --git a/www/app/[domain]/transcripts/mockTopics.json b/www/app/(app)/transcripts/mockTopics.json similarity index 100% rename from www/app/[domain]/transcripts/mockTopics.json rename to www/app/(app)/transcripts/mockTopics.json diff --git a/www/app/[domain]/transcripts/modal.tsx b/www/app/(app)/transcripts/modal.tsx similarity index 100% rename from www/app/[domain]/transcripts/modal.tsx rename to www/app/(app)/transcripts/modal.tsx diff --git a/www/app/[domain]/transcripts/new/page.tsx b/www/app/(app)/transcripts/new/page.tsx similarity index 99% rename from www/app/[domain]/transcripts/new/page.tsx rename to www/app/(app)/transcripts/new/page.tsx index 4297a948..62d83ee9 100644 --- a/www/app/[domain]/transcripts/new/page.tsx +++ b/www/app/(app)/transcripts/new/page.tsx @@ -11,7 +11,7 @@ import useCreateTranscript from "../createTranscript"; import SelectSearch from "react-select-search"; import { supportedLanguages } from "../../../supportedLanguages"; import { useFiefIsAuthenticated } from "@fief/fief/nextjs/react"; -import { featureEnabled } from "../../domainContext"; +import { featureEnabled } from "../../../domainContext"; import { Button, Text } from "@chakra-ui/react"; const TranscriptCreate = () => { const router = useRouter(); diff --git a/www/app/[domain]/transcripts/player.tsx b/www/app/(app)/transcripts/player.tsx similarity index 100% rename from www/app/[domain]/transcripts/player.tsx rename to www/app/(app)/transcripts/player.tsx diff --git a/www/app/[domain]/transcripts/recorder.tsx b/www/app/(app)/transcripts/recorder.tsx similarity index 100% rename from www/app/[domain]/transcripts/recorder.tsx rename to www/app/(app)/transcripts/recorder.tsx diff --git a/www/app/[domain]/transcripts/scrollToBottom.tsx b/www/app/(app)/transcripts/scrollToBottom.tsx similarity index 100% rename from www/app/[domain]/transcripts/scrollToBottom.tsx rename to www/app/(app)/transcripts/scrollToBottom.tsx diff --git a/www/app/[domain]/transcripts/shareAndPrivacy.tsx b/www/app/(app)/transcripts/shareAndPrivacy.tsx similarity index 98% rename from www/app/[domain]/transcripts/shareAndPrivacy.tsx rename to www/app/(app)/transcripts/shareAndPrivacy.tsx index 5bf53c3b..5525686a 100644 --- a/www/app/[domain]/transcripts/shareAndPrivacy.tsx +++ b/www/app/(app)/transcripts/shareAndPrivacy.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from "react"; -import { featureEnabled } from "../domainContext"; +import { featureEnabled } from "../../domainContext"; import { ShareMode, toShareMode } from "../../lib/shareMode"; import { GetTranscript, GetTranscriptTopic, UpdateTranscript } from "../../api"; diff --git a/www/app/[domain]/transcripts/shareCopy.tsx b/www/app/(app)/transcripts/shareCopy.tsx similarity index 100% rename from www/app/[domain]/transcripts/shareCopy.tsx rename to www/app/(app)/transcripts/shareCopy.tsx diff --git a/www/app/[domain]/transcripts/shareLink.tsx b/www/app/(app)/transcripts/shareLink.tsx similarity index 97% rename from www/app/[domain]/transcripts/shareLink.tsx rename to www/app/(app)/transcripts/shareLink.tsx index 7bc38ac1..4c0df02e 100644 --- a/www/app/[domain]/transcripts/shareLink.tsx +++ b/www/app/(app)/transcripts/shareLink.tsx @@ -1,5 +1,5 @@ import React, { useState, useRef, useEffect, use } from "react"; -import { featureEnabled } from "../domainContext"; +import { featureEnabled } from "../../domainContext"; import { Button, Flex, Input, Text } from "@chakra-ui/react"; import QRCode from "react-qr-code"; diff --git a/www/app/[domain]/transcripts/shareZulip.tsx b/www/app/(app)/transcripts/shareZulip.tsx similarity index 94% rename from www/app/[domain]/transcripts/shareZulip.tsx rename to www/app/(app)/transcripts/shareZulip.tsx index e7c2c092..9acdc49c 100644 --- a/www/app/[domain]/transcripts/shareZulip.tsx +++ b/www/app/(app)/transcripts/shareZulip.tsx @@ -1,5 +1,5 @@ import { useState } from "react"; -import { featureEnabled } from "../domainContext"; +import { featureEnabled } from "../../domainContext"; import ShareModal from "./[transcriptId]/shareModal"; import { GetTranscript, GetTranscriptTopic } from "../../api"; import { BoxProps, Button } from "@chakra-ui/react"; diff --git a/www/app/[domain]/transcripts/topicList.tsx b/www/app/(app)/transcripts/topicList.tsx similarity index 99% rename from www/app/[domain]/transcripts/topicList.tsx rename to www/app/(app)/transcripts/topicList.tsx index a6e928c6..e3c88ba3 100644 --- a/www/app/[domain]/transcripts/topicList.tsx +++ b/www/app/(app)/transcripts/topicList.tsx @@ -14,7 +14,7 @@ import { Flex, Text, } from "@chakra-ui/react"; -import { featureEnabled } from "../domainContext"; +import { featureEnabled } from "../../domainContext"; type TopicListProps = { topics: Topic[]; diff --git a/www/app/[domain]/transcripts/transcriptTitle.tsx b/www/app/(app)/transcripts/transcriptTitle.tsx similarity index 100% rename from www/app/[domain]/transcripts/transcriptTitle.tsx rename to www/app/(app)/transcripts/transcriptTitle.tsx diff --git a/www/app/[domain]/transcripts/useAudioDevice.ts b/www/app/(app)/transcripts/useAudioDevice.ts similarity index 100% rename from www/app/[domain]/transcripts/useAudioDevice.ts rename to www/app/(app)/transcripts/useAudioDevice.ts diff --git a/www/app/[domain]/transcripts/useMp3.ts b/www/app/(app)/transcripts/useMp3.ts similarity index 97% rename from www/app/[domain]/transcripts/useMp3.ts rename to www/app/(app)/transcripts/useMp3.ts index 9cfff0c7..b8c0a566 100644 --- a/www/app/[domain]/transcripts/useMp3.ts +++ b/www/app/(app)/transcripts/useMp3.ts @@ -1,5 +1,5 @@ import { useContext, useEffect, useState } from "react"; -import { DomainContext } from "../domainContext"; +import { DomainContext } from "../../domainContext"; import getApi from "../../lib/useApi"; import { useFiefAccessTokenInfo } from "@fief/fief/build/esm/nextjs/react"; diff --git a/www/app/[domain]/transcripts/useParticipants.ts b/www/app/(app)/transcripts/useParticipants.ts similarity index 100% rename from www/app/[domain]/transcripts/useParticipants.ts rename to www/app/(app)/transcripts/useParticipants.ts diff --git a/www/app/[domain]/transcripts/useTopicWithWords.ts b/www/app/(app)/transcripts/useTopicWithWords.ts similarity index 100% rename from www/app/[domain]/transcripts/useTopicWithWords.ts rename to www/app/(app)/transcripts/useTopicWithWords.ts diff --git a/www/app/[domain]/transcripts/useTopics.ts b/www/app/(app)/transcripts/useTopics.ts similarity index 100% rename from www/app/[domain]/transcripts/useTopics.ts rename to www/app/(app)/transcripts/useTopics.ts diff --git a/www/app/[domain]/transcripts/useTranscript.ts b/www/app/(app)/transcripts/useTranscript.ts similarity index 100% rename from www/app/[domain]/transcripts/useTranscript.ts rename to www/app/(app)/transcripts/useTranscript.ts diff --git a/www/app/[domain]/transcripts/useTranscriptList.ts b/www/app/(app)/transcripts/useTranscriptList.ts similarity index 100% rename from www/app/[domain]/transcripts/useTranscriptList.ts rename to www/app/(app)/transcripts/useTranscriptList.ts diff --git a/www/app/[domain]/transcripts/useWaveform.ts b/www/app/(app)/transcripts/useWaveform.ts similarity index 100% rename from www/app/[domain]/transcripts/useWaveform.ts rename to www/app/(app)/transcripts/useWaveform.ts diff --git a/www/app/[domain]/transcripts/useWebRTC.ts b/www/app/(app)/transcripts/useWebRTC.ts similarity index 100% rename from www/app/[domain]/transcripts/useWebRTC.ts rename to www/app/(app)/transcripts/useWebRTC.ts diff --git a/www/app/[domain]/transcripts/useWebSockets.ts b/www/app/(app)/transcripts/useWebSockets.ts similarity index 99% rename from www/app/[domain]/transcripts/useWebSockets.ts rename to www/app/(app)/transcripts/useWebSockets.ts index 3b5cca62..6fa5edc7 100644 --- a/www/app/[domain]/transcripts/useWebSockets.ts +++ b/www/app/(app)/transcripts/useWebSockets.ts @@ -1,7 +1,7 @@ import { useContext, useEffect, useState } from "react"; import { Topic, FinalSummary, Status } from "./webSocketTypes"; import { useError } from "../../(errors)/errorContext"; -import { DomainContext } from "../domainContext"; +import { DomainContext } from "../../domainContext"; import { AudioWaveform, GetTranscriptSegmentTopic } from "../../api"; import useApi from "../../lib/useApi"; diff --git a/www/app/[domain]/transcripts/waveformLoading.tsx b/www/app/(app)/transcripts/waveformLoading.tsx similarity index 100% rename from www/app/[domain]/transcripts/waveformLoading.tsx rename to www/app/(app)/transcripts/waveformLoading.tsx diff --git a/www/app/[domain]/transcripts/webSocketTypes.ts b/www/app/(app)/transcripts/webSocketTypes.ts similarity index 100% rename from www/app/[domain]/transcripts/webSocketTypes.ts rename to www/app/(app)/transcripts/webSocketTypes.ts diff --git a/www/app/[domain]/[roomName]/page.tsx b/www/app/[roomName]/page.tsx similarity index 100% rename from www/app/[domain]/[roomName]/page.tsx rename to www/app/[roomName]/page.tsx diff --git a/www/app/[domain]/[roomName]/useRoomMeeting.tsx b/www/app/[roomName]/useRoomMeeting.tsx similarity index 89% rename from www/app/[domain]/[roomName]/useRoomMeeting.tsx rename to www/app/[roomName]/useRoomMeeting.tsx index ef5167b3..bf75fdfd 100644 --- a/www/app/[domain]/[roomName]/useRoomMeeting.tsx +++ b/www/app/[roomName]/useRoomMeeting.tsx @@ -1,8 +1,8 @@ import { useEffect, useState } from "react"; -import { useError } from "../../(errors)/errorContext"; -import { Meeting } from "../../api"; -import { shouldShowError } from "../../lib/errorUtils"; -import useApi from "../../lib/useApi"; +import { useError } from "../(errors)/errorContext"; +import { Meeting } from "../api"; +import { shouldShowError } from "../lib/errorUtils"; +import useApi from "../lib/useApi"; type ErrorMeeting = { error: Error; diff --git a/www/app/[domain]/domainContext.tsx b/www/app/domainContext.tsx similarity index 95% rename from www/app/[domain]/domainContext.tsx rename to www/app/domainContext.tsx index 6b6d65b5..fb57a066 100644 --- a/www/app/[domain]/domainContext.tsx +++ b/www/app/domainContext.tsx @@ -1,6 +1,6 @@ "use client"; import { createContext, useContext, useEffect, useState } from "react"; -import { DomainConfig } from "../lib/edgeConfig"; +import { DomainConfig } from "./lib/edgeConfig"; type DomainContextType = Omit; diff --git a/www/app/[domain]/layout.tsx b/www/app/layout.tsx similarity index 91% rename from www/app/[domain]/layout.tsx rename to www/app/layout.tsx index f4145d32..087d9c0d 100644 --- a/www/app/[domain]/layout.tsx +++ b/www/app/layout.tsx @@ -1,19 +1,19 @@ -import "../styles/globals.scss"; +import "./styles/globals.scss"; import { Poppins } from "next/font/google"; import { Metadata, Viewport } from "next"; -import FiefWrapper from "../(auth)/fiefWrapper"; -import UserInfo from "../(auth)/userInfo"; -import { ErrorProvider } from "../(errors)/errorContext"; -import ErrorMessage from "../(errors)/errorMessage"; +import FiefWrapper from "./(auth)/fiefWrapper"; +import UserInfo from "./(auth)/userInfo"; +import { ErrorProvider } from "./(errors)/errorContext"; +import ErrorMessage from "./(errors)/errorMessage"; import Image from "next/image"; -import About from "../(aboutAndPrivacy)/about"; -import Privacy from "../(aboutAndPrivacy)/privacy"; +import About from "./(aboutAndPrivacy)/about"; +import Privacy from "./(aboutAndPrivacy)/privacy"; import { DomainContextProvider } from "./domainContext"; -import { getConfig } from "../lib/edgeConfig"; +import { getConfig } from "./lib/edgeConfig"; import { ErrorBoundary } from "@sentry/nextjs"; import { cookies } from "next/dist/client/components/headers"; -import { SESSION_COOKIE_NAME } from "../lib/fief"; -import { Providers } from "../providers"; +import { SESSION_COOKIE_NAME } from "./lib/fief"; +import { Providers } from "./providers"; import NextLink from "next/link"; import { Container, Flex, Link } from "@chakra-ui/react"; @@ -67,15 +67,13 @@ export const metadata: Metadata = { robots: { index: false, follow: false, noarchive: true, noimageindex: true }, }; -type LayoutProps = { - params: { - domain: string; - }; - children: any; -}; - -export default async function RootLayout({ children, params }: LayoutProps) { - const config = await getConfig(params.domain); +export default async function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + const hostname = new URL(process.env.NEXT_PUBLIC_SITE_URL!).hostname; + const config = await getConfig(hostname); const { requireLogin, privacy, browse, rooms } = config.features; const hasAuthCookie = !!cookies().get(SESSION_COOKIE_NAME); diff --git a/www/app/lib/useApi.ts b/www/app/lib/useApi.ts index 6f788f8e..226605a4 100644 --- a/www/app/lib/useApi.ts +++ b/www/app/lib/useApi.ts @@ -1,6 +1,6 @@ import { useFiefAccessTokenInfo } from "@fief/fief/nextjs/react"; import { useContext, useEffect, useState } from "react"; -import { DomainContext, featureEnabled } from "../[domain]/domainContext"; +import { DomainContext, featureEnabled } from "../domainContext"; import { CookieContext } from "../(auth)/fiefWrapper"; import { OpenApi, DefaultService } from "../api"; diff --git a/www/app/[domain]/page.tsx b/www/app/page.tsx similarity index 100% rename from www/app/[domain]/page.tsx rename to www/app/page.tsx diff --git a/www/middleware.ts b/www/middleware.ts index a5f2bb96..c49af350 100644 --- a/www/middleware.ts +++ b/www/middleware.ts @@ -24,25 +24,8 @@ export async function middleware(request: NextRequest) { if (config.features.requireLogin) { const fiefMiddleware = await getFiefAuthMiddleware(request.nextUrl); const fiefResponse = await fiefMiddleware(request); - if (!fiefResponse.headers.get("x-middleware-rewrite")) { - fiefResponse.headers.set( - "x-middleware-rewrite", - request.nextUrl.origin + "/" + domain + request.nextUrl.pathname, - ); - } return fiefResponse; } - - if ( - request.nextUrl.pathname == "/" || - request.nextUrl.pathname.startsWith("/transcripts") || - request.nextUrl.pathname.startsWith("/browse") || - request.nextUrl.pathname.startsWith("/rooms") - ) { - return NextResponse.rewrite( - request.nextUrl.origin + "/" + domain + request.nextUrl.pathname, - ); - } } return NextResponse.next();