Skip to content

Instantly share code, notes, and snippets.

View ByteCrak07's full-sized avatar
😍
I'm lovin' it

Abil Savio ByteCrak07

😍
I'm lovin' it
View GitHub Profile
import { FormData } from '@/components/contact';
export function sendEmail(data: FormData) {
const apiEndpoint = '/api/email';
fetch(apiEndpoint, {
method: 'POST',
body: JSON.stringify(data),
})
.then((res) => res.json())
import { type NextRequest, NextResponse } from 'next/server';
import nodemailer from 'nodemailer';
import Mail from 'nodemailer/lib/mailer';
export async function POST(request: NextRequest) {
const { email, name, message } = await request.json();
const transport = nodemailer.createTransport({
service: 'gmail',
/*
import { FormData } from '@/components/contact';
export function sendEmail(data: FormData) {
// TODO: send email
console.log(data);
}
'use client';
import { FC } from 'react';
import { useForm } from 'react-hook-form';
import { sendEmail } from '@/utils/send-email';
export type FormData = {
name: string;
email: string;
message: string;
import Contact from '@/components/contact';
export default function Home() {
return (
<main className='flex min-h-screen flex-col items-center justify-center p-24 bg-white'>
<Contact />
</main>
);
}
import Head from "next/head";
import { NextPage } from "next";
import Link from "next/link";
import { usePbAuth } from "../contexts/AuthWrapper";
const Home: NextPage = () => {
const { user, signOut } = usePbAuth();
return (
<>
import Head from "next/head";
import { NextPage } from "next";
import { useRouter } from "next/router";
import { useEffect } from "react";
import type { AuthProviderInfo, Record as PbRecord } from "pocketbase";
import pb from "../lib/pocketbase";
import { usePbAuth } from "../contexts/AuthWrapper";
const SignIn: NextPage = () => {
const { googleSignIn, githubSignIn, setUserData } = usePbAuth();
import "../styles/globals.css";
import type { AppProps } from "next/app";
import AuthWrapper from "../contexts/AuthWrapper";
export default function App({ Component, pageProps }: AppProps) {
return (
<AuthWrapper>
<Component {...pageProps} />
</AuthWrapper>
);
import {
createContext,
FC,
ReactNode,
useContext,
useEffect,
useState,
} from "react";
import { useRouter } from "next/router";
import pb from "../lib/pocketbase";
import PocketBase from "pocketbase";
const pb = new PocketBase(process.env.NEXT_PUBLIC_PB_URL);
if (process.env.NODE_ENV === "development") pb.autoCancellation(false);
export default pb;