| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import Head from 'next/head'
- import { signIn, signOut, getSession, useSession } from 'next-auth/client'
- import { GetServerSidePropsContext } from 'next'
-
- export default function Home({
- ssrSession,
- isOwner,
- isSponsor,
- }: {
- isOwner: boolean
- isSponsor: boolean
- ssrSession: any
- }) {
- const [session, loading] = useSession()
- return (
- <>
- <Head>
- <title>tldraw</title>
- </Head>
- <div>
- <button onClick={() => signIn()}>Sign In</button>
- <button onClick={() => signOut()}>Sign Out</button>
- <p>{loading && 'Loading...'}</p>
- <pre>{JSON.stringify(session, null, 2)}</pre>
- <p>Is owner? {isOwner.toString()}</p>
- <p>Is sponsor? {isSponsor.toString()}</p>
-
- {isSponsor ? (
- <p>
- <b>Hey, thanks for sponsoring me!</b>
- </p>
- ) : (
- <p>
- <b>
- This site is just for my github sponsors.{' '}
- <a
- href="https://github.com/sponsors/steveruizok"
- target="_blank"
- rel="noopener noreferrer"
- >
- Sponsor here!
- </a>
- </b>
- </p>
- )}
- </div>
- </>
- )
- }
-
- export async function getServerSideProps(context: GetServerSidePropsContext) {
- let isSponsor = false
-
- const session = await getSession(context)
-
- if (session?.user) {
- const id = session.user.image.match(/u\/(.*)\?/)?.[1]
-
- const sponsors = await fetch(
- 'https://sponsors.trnck.dev/sponsors/steveruizok'
- ).then((d) => d.json().then((d) => d.sponsors))
-
- const sponsor = sponsors.find(
- (sponsor: { avatar: string }) => sponsor.avatar === session.user.image
- )
-
- isSponsor = sponsor !== undefined
- }
-
- return {
- props: {
- isOwner: session.user.email === 'steveruizok@gmail.com',
- isSponsor,
- ssrSession: session,
- },
- }
- }
|