mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-02-25 19:38:05 -05:00
Refactor lib
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import NextAuth from "next-auth";
|
||||
import {authOptions} from "@/lib/auth";
|
||||
import {authOptions} from "@/lib/server/auth";
|
||||
|
||||
const authHandler = NextAuth(authOptions);
|
||||
export {authHandler as GET, authHandler as POST};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import bcrypt from "bcryptjs";
|
||||
import {NextResponse} from "next/server";
|
||||
import {prisma} from "@/lib/prisma";
|
||||
import {prisma} from "@/lib/server/prisma";
|
||||
import {v4 as uuidv4} from 'uuid';
|
||||
|
||||
// Helper function to generate a verification token
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import { prisma } from "@/lib/prisma";
|
||||
import { prisma } from "@/lib/server/prisma";
|
||||
|
||||
export async function GET(req: Request) {
|
||||
try {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import { prisma } from "@/lib/prisma";
|
||||
import { prisma } from "@/lib/server/prisma";
|
||||
|
||||
export async function GET(
|
||||
request: Request,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { prisma }from "@/lib/prisma";
|
||||
import { prisma }from "@/lib/server/prisma";
|
||||
import { NextResponse } from "next/server";
|
||||
import {getSession} from "@/lib/auth";
|
||||
import {getSession} from "@/lib/server/auth";
|
||||
|
||||
export async function GET(request: Request) {
|
||||
const url = new URL(request.url);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {NextResponse} from 'next/server';
|
||||
import {getSession} from '@/lib/auth';
|
||||
import {getSession} from '@/lib/server/auth';
|
||||
import {v4 as uuidv4} from 'uuid';
|
||||
import {GetObjectCommand, PutObjectCommand, S3Client} from '@aws-sdk/client-s3';
|
||||
import {getSignedUrl} from "@aws-sdk/s3-request-presigner";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {NextResponse} from "next/server";
|
||||
import {prisma} from "@/lib/prisma";
|
||||
import {getSession} from "@/lib/auth";
|
||||
import {prisma} from "@/lib/server/prisma";
|
||||
import {getSession} from "@/lib/server/auth";
|
||||
|
||||
export async function POST(req: Request) {
|
||||
try {
|
||||
|
||||
@@ -3,19 +3,30 @@
|
||||
import {useEffect, useState} from "react";
|
||||
import {notFound, useParams} from "next/navigation";
|
||||
import Image from "next/image";
|
||||
import LoadingSpinner from "@/lib/LoadingSpinner";
|
||||
import LoadingSpinner from "@/lib/client/LoadingSpinner";
|
||||
|
||||
// interface ProfileData {
|
||||
// name?: string;
|
||||
// image?: string;
|
||||
// profile?: any;
|
||||
// }
|
||||
interface ProfileData {
|
||||
name: string;
|
||||
image: string;
|
||||
profile: {
|
||||
location: string;
|
||||
gender: string;
|
||||
personalityType: string;
|
||||
conflictStyle: string;
|
||||
description: string;
|
||||
contactInfo: string;
|
||||
intellectualInterests: { interest?: {name?: string} }[];
|
||||
causeAreas: { causeArea?: {name?: string} }[];
|
||||
desiredConnections: { connection?: {name?: string} }[];
|
||||
promptAnswers: { prompt?: string; answer?: string }[];
|
||||
};
|
||||
}
|
||||
|
||||
export const dynamic = "force-dynamic"; // This disables SSG and ISR
|
||||
|
||||
export default function Post() {
|
||||
const {id} = useParams();
|
||||
const [user, setUser] = useState<any>(null);
|
||||
const [user, setUser] = useState<ProfileData | null>(null);
|
||||
const [image, setImage] = useState(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
@@ -116,7 +127,7 @@ export default function Post() {
|
||||
key={idx}
|
||||
className="px-3 py-1 text-sm bg-gray-100 rounded-full hover:bg-gray-200 transition"
|
||||
>
|
||||
{value.connection.name}
|
||||
{value?.connection?.name}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
@@ -146,7 +157,7 @@ export default function Post() {
|
||||
|
||||
{user?.profile?.conflictStyle && (
|
||||
<div>
|
||||
<h2 className="text-sm font-medium text-gray-500 uppercase tracking-wider">Conflit Style</h2>
|
||||
<h2 className="text-sm font-medium text-gray-500 uppercase tracking-wider">Conflict Style</h2>
|
||||
<p className="mt-1 text-gray-800 whitespace-pre-line">{user.profile.conflictStyle}</p>
|
||||
</div>
|
||||
)}
|
||||
@@ -161,7 +172,7 @@ export default function Post() {
|
||||
key={idx}
|
||||
className="px-3 py-1 text-sm bg-gray-100 rounded-full hover:bg-gray-200 transition"
|
||||
>
|
||||
{value.interest.name}
|
||||
{value?.interest?.name}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
@@ -178,7 +189,7 @@ export default function Post() {
|
||||
key={idx}
|
||||
className="px-3 py-1 text-sm bg-gray-100 rounded-full hover:bg-gray-200 transition"
|
||||
>
|
||||
{value.causeArea.name}
|
||||
{value?.causeArea?.name}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
|
||||
import Link from "next/link";
|
||||
import {useEffect, useState} from "react";
|
||||
import LoadingSpinner from "@/lib/LoadingSpinner";
|
||||
import LoadingSpinner from "@/lib/client/LoadingSpinner";
|
||||
|
||||
|
||||
// Disable static generation
|
||||
export const dynamic = "force-dynamic";
|
||||
|
||||
// type Profile = {
|
||||
// id: string;
|
||||
// name: string;
|
||||
// createdAt: string;
|
||||
// profile: any;
|
||||
// };
|
||||
type Profile = {
|
||||
id: string;
|
||||
name: string;
|
||||
createdAt: string;
|
||||
profile: any;
|
||||
};
|
||||
|
||||
|
||||
export default function ProfilePage() {
|
||||
|
||||
const [profiles, setProfiles] = useState<any[]>([]);
|
||||
const [profiles, setProfiles] = useState<Profile[]>([]);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type {NextAuthOptions} from "next-auth";
|
||||
import {getServerSession} from "next-auth";
|
||||
import {PrismaAdapter} from "@auth/prisma-adapter";
|
||||
import {prisma} from "@/lib/prisma";
|
||||
import {prisma} from "@/lib/server/prisma";
|
||||
import GoogleProvider from "next-auth/providers/google";
|
||||
import CredentialsProvider from "next-auth/providers/credentials";
|
||||
import bcrypt from "bcryptjs";
|
||||
@@ -1,6 +1,6 @@
|
||||
"use server";
|
||||
|
||||
import {prisma} from "@/lib/prisma";
|
||||
import {prisma} from "@/lib/server/prisma";
|
||||
|
||||
|
||||
export async function checkUserTableExists(): Promise<boolean> {
|
||||
8
lib/server/supabase.ts
Normal file
8
lib/server/supabase.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
"use server";
|
||||
|
||||
// import { createClient } from '@supabase/supabase-js';
|
||||
//
|
||||
// export const supabase = createClient(
|
||||
// process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
||||
// process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
|
||||
// );
|
||||
@@ -1,6 +0,0 @@
|
||||
import { createClient } from '@supabase/supabase-js';
|
||||
|
||||
export const supabase = createClient(
|
||||
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
||||
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
|
||||
);
|
||||
@@ -1,4 +1,4 @@
|
||||
import {prisma} from "@/lib/prisma";
|
||||
import {prisma} from "@/lib/server/prisma";
|
||||
|
||||
|
||||
async function main() {
|
||||
|
||||
Reference in New Issue
Block a user