diff --git a/src/app/(auth)/(routes)/sign-in/[[...sign-in]]/page.tsx b/src/app/(auth)/(routes)/sign-in/[[...sign-in]]/page.tsx index 9fe2bb4..f4b1f94 100644 --- a/src/app/(auth)/(routes)/sign-in/[[...sign-in]]/page.tsx +++ b/src/app/(auth)/(routes)/sign-in/[[...sign-in]]/page.tsx @@ -1,5 +1,13 @@ -import { SignIn } from '@clerk/nextjs'; +import { NextPage } from 'next'; -export default function Page() { - return ; -} +import SignIn from '@/modules/SignIn'; + +const Page: NextPage = () => { + return ( + <> + + + ); +}; + +export default Page; diff --git a/src/app/(auth)/(routes)/sign-up/[[...sign-up]]/page.tsx b/src/app/(auth)/(routes)/sign-up/[[...sign-up]]/page.tsx index 0d02dd1..49cc58e 100644 --- a/src/app/(auth)/(routes)/sign-up/[[...sign-up]]/page.tsx +++ b/src/app/(auth)/(routes)/sign-up/[[...sign-up]]/page.tsx @@ -1,5 +1,13 @@ -import { SignUp } from '@clerk/nextjs'; +import { NextPage } from 'next'; -export default function Page() { - return ; -} +import SignUp from '@/modules/SignUp'; + +const Page: NextPage = () => { + return ( + <> + + + ); +}; + +export default Page; diff --git a/src/app/(invite)/(routes)/invite/[inviteCode]/page.tsx b/src/app/(invite)/(routes)/invite/[inviteCode]/page.tsx index 08b55f9..dfbf889 100644 --- a/src/app/(invite)/(routes)/invite/[inviteCode]/page.tsx +++ b/src/app/(invite)/(routes)/invite/[inviteCode]/page.tsx @@ -1,8 +1,6 @@ -import { redirectToSignIn } from '@clerk/nextjs/server'; -import { redirect } from 'next/navigation'; +import { NextPage } from 'next'; -import { currentProfile } from '@/common/libs/current-profile'; -import { db } from '@/common/libs/db'; +import Invite from '@/modules/Invite'; interface InviteCodePageProps { params: { @@ -10,52 +8,12 @@ interface InviteCodePageProps { }; } -const InviteCodePage = async ({ params }: InviteCodePageProps) => { - const profile = await currentProfile(); - - if (!profile) { - return redirectToSignIn(); - } - - if (!params.inviteCode) { - return redirect('/'); - } - - const existingServer = await db.server.findFirst({ - where: { - inviteCode: params.inviteCode, - members: { - some: { - profileId: profile.id, - }, - }, - }, - }); - - if (existingServer) { - return redirect(`/servers/${existingServer.id}`); - } - - const server = await db.server.update({ - where: { - inviteCode: params.inviteCode, - }, - data: { - members: { - create: [ - { - profileId: profile.id, - }, - ], - }, - }, - }); - - if (server) { - return redirect(`/servers/${server.id}`); - } - - return null; +const Page: NextPage = ({ params }) => { + return ( + <> + + + ); }; -export default InviteCodePage; +export default Page; diff --git a/src/modules/Channels/components/Channels.tsx b/src/modules/Channels/components/Channels.tsx new file mode 100644 index 0000000..b155d1f --- /dev/null +++ b/src/modules/Channels/components/Channels.tsx @@ -0,0 +1,7 @@ +import { SignIn as ClerkSignIn } from '@clerk/nextjs'; + +const Channels: React.FC = () => { + return ; +}; + +export default Channels; diff --git a/src/modules/Channels/index.ts b/src/modules/Channels/index.ts new file mode 100644 index 0000000..7742766 --- /dev/null +++ b/src/modules/Channels/index.ts @@ -0,0 +1,3 @@ +import Channels from './components/Channels'; + +export default Channels; \ No newline at end of file diff --git a/src/modules/Conversations/components/Conversations.tsx b/src/modules/Conversations/components/Conversations.tsx new file mode 100644 index 0000000..c1afcc6 --- /dev/null +++ b/src/modules/Conversations/components/Conversations.tsx @@ -0,0 +1,7 @@ +import { SignIn as ClerkSignIn } from '@clerk/nextjs'; + +const Conversations: React.FC = () => { + return ; +}; + +export default Conversations; diff --git a/src/modules/Conversations/index.ts b/src/modules/Conversations/index.ts new file mode 100644 index 0000000..beeea72 --- /dev/null +++ b/src/modules/Conversations/index.ts @@ -0,0 +1,3 @@ +import Conversations from './components/Conversations'; + +export default Conversations; \ No newline at end of file diff --git a/src/modules/Invite/components/Invite.tsx b/src/modules/Invite/components/Invite.tsx new file mode 100644 index 0000000..d280778 --- /dev/null +++ b/src/modules/Invite/components/Invite.tsx @@ -0,0 +1,59 @@ +import { redirectToSignIn } from '@clerk/nextjs/server'; +import { redirect } from 'next/navigation'; + +import { currentProfile } from '@/common/libs/current-profile'; +import { db } from '@/common/libs/db'; + +interface InviteProps { + inviteCode: string; +} + +const Invite: React.FC = async ({ inviteCode }) => { + const profile = await currentProfile(); + + if (!profile) { + return redirectToSignIn(); + } + + if (!inviteCode) { + return redirect('/'); + } + + const existingServer = await db.server.findFirst({ + where: { + inviteCode: inviteCode, + members: { + some: { + profileId: profile.id, + }, + }, + }, + }); + + if (existingServer) { + return redirect(`/servers/${existingServer.id}`); + } + + const server = await db.server.update({ + where: { + inviteCode: inviteCode, + }, + data: { + members: { + create: [ + { + profileId: profile.id, + }, + ], + }, + }, + }); + + if (server) { + return redirect(`/servers/${server.id}`); + } + + return null; +}; + +export default Invite; diff --git a/src/modules/Invite/index.ts b/src/modules/Invite/index.ts new file mode 100644 index 0000000..e907a81 --- /dev/null +++ b/src/modules/Invite/index.ts @@ -0,0 +1,3 @@ +import Invite from './components/Invite'; + +export default Invite; \ No newline at end of file diff --git a/src/modules/Servers/components/Servers.tsx b/src/modules/Servers/components/Servers.tsx new file mode 100644 index 0000000..067d9c1 --- /dev/null +++ b/src/modules/Servers/components/Servers.tsx @@ -0,0 +1,7 @@ +import { SignIn as ClerkSignIn } from '@clerk/nextjs'; + +const Servers: React.FC = () => { + return ; +}; + +export default Servers; diff --git a/src/modules/Servers/index.ts b/src/modules/Servers/index.ts new file mode 100644 index 0000000..46734d6 --- /dev/null +++ b/src/modules/Servers/index.ts @@ -0,0 +1,3 @@ +import Servers from './components/Servers'; + +export default Servers; \ No newline at end of file diff --git a/src/modules/SetUp/components/SetUp.tsx b/src/modules/SetUp/components/SetUp.tsx new file mode 100644 index 0000000..651228b --- /dev/null +++ b/src/modules/SetUp/components/SetUp.tsx @@ -0,0 +1,7 @@ +import { SignIn as ClerkSignIn } from '@clerk/nextjs'; + +const SetUp: React.FC = () => { + return ; +}; + +export default SetUp; diff --git a/src/modules/SetUp/index.ts b/src/modules/SetUp/index.ts new file mode 100644 index 0000000..66be2c8 --- /dev/null +++ b/src/modules/SetUp/index.ts @@ -0,0 +1,3 @@ +import SetUp from './components/SetUp'; + +export default SetUp; \ No newline at end of file diff --git a/src/modules/SignIn/components/SignIn.tsx b/src/modules/SignIn/components/SignIn.tsx new file mode 100644 index 0000000..17bcbf5 --- /dev/null +++ b/src/modules/SignIn/components/SignIn.tsx @@ -0,0 +1,7 @@ +import { SignIn as ClerkSignIn } from '@clerk/nextjs'; + +const SignIn: React.FC = () => { + return ; +}; + +export default SignIn; diff --git a/src/modules/SignIn/index.ts b/src/modules/SignIn/index.ts new file mode 100644 index 0000000..0e64611 --- /dev/null +++ b/src/modules/SignIn/index.ts @@ -0,0 +1,3 @@ +import SignIn from './components/SignIn'; + +export default SignIn; \ No newline at end of file diff --git a/src/modules/SignUp/components/SignUp.tsx b/src/modules/SignUp/components/SignUp.tsx new file mode 100644 index 0000000..c7cc53d --- /dev/null +++ b/src/modules/SignUp/components/SignUp.tsx @@ -0,0 +1,7 @@ +import { SignUp as ClerkSignUp } from '@clerk/nextjs'; + +const SignUp: React.FC = () => { + return ; +}; + +export default SignUp; diff --git a/src/modules/SignUp/index.ts b/src/modules/SignUp/index.ts new file mode 100644 index 0000000..b88167d --- /dev/null +++ b/src/modules/SignUp/index.ts @@ -0,0 +1,3 @@ +import SignUp from './components/SignUp'; + +export default SignUp;