Merge branch 'main' of github.com:joeltg/zk-group-sigs-server into main

This commit is contained in:
Uma Roy
2021-11-20 11:04:10 -05:00
6 changed files with 61 additions and 21 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,3 @@
*.min.js
*.sqlite
.env.Local
prisma/.env

View File

@@ -1,8 +1,16 @@
import React, { useState, useEffect } from "react"
import Link from "next/link"
import { LOCAL_STORAGE_SECRET_KEY } from "utils/localStorage"
import { User } from "utils/types"
export function Header() {
export function Header({
users,
publicKey,
}: {
users?: User[] | null
publicKey?: string | null
}) {
const user = users?.find((u) => u.publicKey === publicKey)
const [secret, setSecret] = useState("")
useEffect(() => {
const secret = localStorage.getItem(LOCAL_STORAGE_SECRET_KEY)
@@ -22,14 +30,33 @@ export function Header() {
</div>
<div>
{secret ? (
<div
className="cursor-pointer hover:underline mt-16"
onClick={() => {
localStorage.clear()
document.location = "/"
}}
>
Logout
<div className="mt-16">
<div className="inline mr-6">
{user ? (
<a
className="cursor-pointer hover:underline"
href={`https://twitter.com/${user.twitterHandle}`}
target="_blank"
>
{user.twitterHandle}
</a>
) : (
<Link href="/connect">
<div className="inline cursor-pointer hover:underline">
Connect Twitter
</div>
</Link>
)}
</div>
<div
className="inline cursor-pointer hover:underline"
onClick={() => {
localStorage.clear()
document.location = "/"
}}
>
Logout
</div>
</div>
) : (
<Link href="/login">

View File

@@ -216,13 +216,14 @@ interface MessagesProps {
users: User[]
}
function VerifyButton({ vKeys, message }) {
function VerifyButton({ vKeys, message }: { vKeys: any; message: Message }) {
const [text, setText] = useState<null | string>(null)
const handleClick = useCallback(async () => {
const text = await onMessageVerify(vKeys, message)
setText(text)
}, [])
return (
<div>
{text ? (
@@ -442,13 +443,13 @@ export default function Messages({
{message.reveal ? (
<UserIcon
key={message.reveal.userPublicKey}
url={message.reveal.userTwitterProfileImage}
url={message.reveal.userTwitterProfileImage!}
/>
) : (
message.group.map((u) => (
message.group.map((u, index) => (
<UserIcon
key={u}
url={lookupTwitterProfileImage(u, users) || ""}
key={index}
url={lookupTwitterProfileImage(u, users)!}
/>
))
)}
@@ -456,10 +457,10 @@ export default function Messages({
</div>
<div className="text-right text-gray-400">
{message.deny.length > 0 && "Not from "}
{message.deny?.map((d) => (
{message.deny?.map((d, index) => (
<UserIcon
key={d.userPublicKey}
url={lookupTwitterProfileImage(d.userPublicKey, users)}
key={index}
url={lookupTwitterProfileImage(d.userPublicKey, users)!}
/>
))}
</div>

View File

@@ -68,12 +68,15 @@ export function SelectUsers({
onChange={() => {
if (selectedUsers.indexOf(user.publicKey) === -1) {
setSelectedUsers(selectedUsers.concat(user.publicKey))
updateSelectedUsers(selectedUsers.concat(user.publicKey))
} else {
setSelectedUsers(
selectedUsers.filter((h) => h !== user.publicKey)
)
updateSelectedUsers(
selectedUsers.filter((h) => h !== user.publicKey)
)
}
updateSelectedUsers(selectedUsers)
}}
/>
)}

View File

@@ -125,8 +125,8 @@ export default function IndexPage({
return (
<AppContext.Provider value={{ vkeys }}>
<div className="max-w-4xl m-auto font-mono">
<Header />
<div className="grid grid-cols-4 gap-6 pt-2">
<Header users={users} publicKey={publicKey} />
<div className="grid grid-cols-4 gap-6 pt-2 pb-14">
<div className="col-span-3">
<Messages
publicKey={publicKey}

10
public/snarkjs.min.js vendored Normal file

File diff suppressed because one or more lines are too long