mirror of
https://github.com/luminous-devs/lume.git
synced 2024-09-19 19:46:34 +00:00
minor fixes
This commit is contained in:
parent
48e453fe5c
commit
e2491e47c0
@ -29,7 +29,7 @@ export function ChannelMessageUser({
|
|||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<div className="relative h-11 w-11 shrink rounded-md">
|
<div className="relative h-11 w-11 shrink-0 rounded-md">
|
||||||
<Image
|
<Image
|
||||||
src={user?.picture || DEFAULT_AVATAR}
|
src={user?.picture || DEFAULT_AVATAR}
|
||||||
alt={pubkey}
|
alt={pubkey}
|
||||||
@ -38,7 +38,7 @@ export function ChannelMessageUser({
|
|||||||
</div>
|
</div>
|
||||||
<div className="flex w-full flex-1 items-start justify-between">
|
<div className="flex w-full flex-1 items-start justify-between">
|
||||||
<div className="flex items-baseline gap-2 text-base">
|
<div className="flex items-baseline gap-2 text-base">
|
||||||
<span className="font-semibold leading-none text-white">
|
<span className="max-w-[10rem] truncate font-semibold leading-none text-white">
|
||||||
{user?.nip05 || user?.name || shortenKey(pubkey)}
|
{user?.nip05 || user?.name || shortenKey(pubkey)}
|
||||||
</span>
|
</span>
|
||||||
<span className="leading-none text-zinc-500">·</span>
|
<span className="leading-none text-zinc-500">·</span>
|
||||||
|
@ -22,7 +22,7 @@ export function UserReply({ pubkey }: { pubkey: string }) {
|
|||||||
className="h-9 w-9 rounded object-cover"
|
className="h-9 w-9 rounded object-cover"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<span className="text-sm font-medium leading-none text-zinc-500">
|
<span className="max-w-[10rem] truncate text-sm font-medium leading-none text-zinc-500">
|
||||||
Replying to {user?.name || shortenKey(pubkey)}
|
Replying to {user?.name || shortenKey(pubkey)}
|
||||||
</span>
|
</span>
|
||||||
</>
|
</>
|
||||||
|
@ -3,6 +3,7 @@ import { RelayContext } from "@shared/relayProvider";
|
|||||||
import { useActiveAccount } from "@stores/accounts";
|
import { useActiveAccount } from "@stores/accounts";
|
||||||
import { WRITEONLY_RELAYS } from "@stores/constants";
|
import { WRITEONLY_RELAYS } from "@stores/constants";
|
||||||
import { dateToUnix } from "@utils/date";
|
import { dateToUnix } from "@utils/date";
|
||||||
|
import { useProfile } from "@utils/hooks/useProfile";
|
||||||
import { getEventHash, getSignature } from "nostr-tools";
|
import { getEventHash, getSignature } from "nostr-tools";
|
||||||
import { useContext, useState } from "react";
|
import { useContext, useState } from "react";
|
||||||
|
|
||||||
@ -10,6 +11,7 @@ export function NoteReplyForm({ id }: { id: string }) {
|
|||||||
const pool: any = useContext(RelayContext);
|
const pool: any = useContext(RelayContext);
|
||||||
const account = useActiveAccount((state: any) => state.account);
|
const account = useActiveAccount((state: any) => state.account);
|
||||||
|
|
||||||
|
const { user } = useProfile(account.pubkey);
|
||||||
const [value, setValue] = useState("");
|
const [value, setValue] = useState("");
|
||||||
|
|
||||||
const submitEvent = () => {
|
const submitEvent = () => {
|
||||||
@ -32,12 +34,12 @@ export function NoteReplyForm({ id }: { id: string }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex gap-2.5 px-3 py-4">
|
<div className="flex gap-2.5 py-4">
|
||||||
<div>
|
<div>
|
||||||
<div className="relative h-9 w-9 shrink-0 overflow-hidden rounded-md">
|
<div className="relative h-9 w-9 shrink-0 overflow-hidden rounded-md">
|
||||||
<Image
|
<Image
|
||||||
src={account?.picture}
|
src={user?.picture}
|
||||||
alt={account?.pubkey}
|
alt={id}
|
||||||
className="h-9 w-9 rounded-md object-cover"
|
className="h-9 w-9 rounded-md object-cover"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Kind1 } from "@app/note/components/kind1";
|
import { Kind1 } from "@app/note/components/kind1";
|
||||||
|
import { NoteMetadata } from "@app/note/components/metadata";
|
||||||
import { NoteReplyUser } from "@app/note/components/user/reply";
|
import { NoteReplyUser } from "@app/note/components/user/reply";
|
||||||
import { noteParser } from "@utils/parser";
|
import { noteParser } from "@utils/parser";
|
||||||
|
|
||||||
@ -6,11 +7,12 @@ export function Reply({ data }: { data: any }) {
|
|||||||
const content = noteParser(data);
|
const content = noteParser(data);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex h-min min-h-min w-full select-text flex-col px-3 py-3">
|
<div className="flex h-min min-h-min w-full select-text flex-col px-3 pt-5 mb-3 rounded-md bg-zinc-900">
|
||||||
<div className="flex flex-col">
|
<div className="flex flex-col">
|
||||||
<NoteReplyUser pubkey={data.pubkey} time={data.created_at} />
|
<NoteReplyUser pubkey={data.pubkey} time={data.created_at} />
|
||||||
<div className="-mt-[20px] pl-[47px]">
|
<div className="-mt-[20px] pl-[47px]">
|
||||||
<Kind1 content={content} />
|
<Kind1 content={content} />
|
||||||
|
<NoteMetadata id={data.id} eventPubkey={data.pubkey} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -17,8 +17,7 @@ export function RepliesList({ id }: { id: string }) {
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"#e": [key],
|
"#e": [key],
|
||||||
since: 0,
|
kinds: [1],
|
||||||
kinds: [1, 1063],
|
|
||||||
limit: 20,
|
limit: 20,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -39,26 +38,24 @@ export function RepliesList({ id }: { id: string }) {
|
|||||||
<div className="mb-2">
|
<div className="mb-2">
|
||||||
<h5 className="text-lg font-semibold text-zinc-300">Replies</h5>
|
<h5 className="text-lg font-semibold text-zinc-300">Replies</h5>
|
||||||
</div>
|
</div>
|
||||||
<div className="rounded-lg border border-zinc-800 bg-zinc-900 shadow-input shadow-black/20">
|
<div className="flex flex-col">
|
||||||
<div className="flex flex-col divide-y divide-zinc-800">
|
<NoteReplyForm id={id} />
|
||||||
<NoteReplyForm id={id} />
|
{error && <div>failed to load</div>}
|
||||||
{error && <div>failed to load</div>}
|
{!data ? (
|
||||||
{!data ? (
|
<div className="flex gap-2 px-3 py-4">
|
||||||
<div className="flex gap-2 px-3 py-4">
|
<div className="relative h-9 w-9 shrink animate-pulse rounded-md bg-zinc-800" />
|
||||||
<div className="relative h-9 w-9 shrink animate-pulse rounded-md bg-zinc-800" />
|
<div className="flex w-full flex-1 flex-col justify-center gap-1">
|
||||||
<div className="flex w-full flex-1 flex-col justify-center gap-1">
|
<div className="flex items-baseline gap-2 text-base">
|
||||||
<div className="flex items-baseline gap-2 text-base">
|
<div className="h-2.5 w-20 animate-pulse rounded-sm bg-zinc-800" />
|
||||||
<div className="h-2.5 w-20 animate-pulse rounded-sm bg-zinc-800" />
|
|
||||||
</div>
|
|
||||||
<div className="h-4 w-44 animate-pulse rounded-sm bg-zinc-800" />
|
|
||||||
</div>
|
</div>
|
||||||
|
<div className="h-4 w-44 animate-pulse rounded-sm bg-zinc-800" />
|
||||||
</div>
|
</div>
|
||||||
) : (
|
</div>
|
||||||
sortEvents(data).map((event: any) => {
|
) : (
|
||||||
return <Reply key={event.id} data={event} />;
|
sortEvents(data).map((event: any) => {
|
||||||
})
|
return <Reply key={event.id} data={event} />;
|
||||||
)}
|
})
|
||||||
</div>
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -27,7 +27,7 @@ export function NoteQuoteUser({
|
|||||||
</div>
|
</div>
|
||||||
<div className="flex w-full flex-1 items-start justify-between">
|
<div className="flex w-full flex-1 items-start justify-between">
|
||||||
<div className="flex items-baseline gap-2 text-base">
|
<div className="flex items-baseline gap-2 text-base">
|
||||||
<span className="font-semibold leading-none text-white">
|
<span className="max-w-[10rem] truncate font-semibold leading-none text-white">
|
||||||
{user?.nip05 || user?.name || shortenKey(pubkey)}
|
{user?.nip05 || user?.name || shortenKey(pubkey)}
|
||||||
</span>
|
</span>
|
||||||
<span className="leading-none text-zinc-500">·</span>
|
<span className="leading-none text-zinc-500">·</span>
|
||||||
|
@ -27,7 +27,7 @@ export function NoteReplyUser({
|
|||||||
</div>
|
</div>
|
||||||
<div className="flex w-full flex-1 items-start justify-between">
|
<div className="flex w-full flex-1 items-start justify-between">
|
||||||
<div className="flex items-baseline gap-2 text-base">
|
<div className="flex items-baseline gap-2 text-base">
|
||||||
<span className="font-semibold leading-none text-white">
|
<span className="max-w-[10rem] truncate font-semibold leading-none text-white">
|
||||||
{user?.nip05 || user?.name || shortenKey(pubkey)}
|
{user?.nip05 || user?.name || shortenKey(pubkey)}
|
||||||
</span>
|
</span>
|
||||||
<span className="leading-none text-zinc-500">·</span>
|
<span className="leading-none text-zinc-500">·</span>
|
||||||
|
@ -17,7 +17,7 @@ export function ActiveAccount({ data }: { data: any }) {
|
|||||||
|
|
||||||
const notChatPage = pathnames.includes("/chat") ? false : true;
|
const notChatPage = pathnames.includes("/chat") ? false : true;
|
||||||
const notChannelPage = pathnames.includes("/channel") ? false : true;
|
const notChannelPage = pathnames.includes("/channel") ? false : true;
|
||||||
const notSpacePage = pathnames.includes("/space") ? false : true;
|
// const notSpacePage = pathnames.includes("/space") ? false : true;
|
||||||
|
|
||||||
const lastLogin = useActiveAccount((state: any) => state.lastLogin);
|
const lastLogin = useActiveAccount((state: any) => state.lastLogin);
|
||||||
const notifyChat = useChats((state: any) => state.add);
|
const notifyChat = useChats((state: any) => state.add);
|
||||||
|
@ -116,7 +116,7 @@ export function Post({ pubkey, privkey }: { pubkey: string; privkey: string }) {
|
|||||||
<div className="flex w-8 shrink-0 items-center justify-center">
|
<div className="flex w-8 shrink-0 items-center justify-center">
|
||||||
<div className="h-full w-[2px] bg-zinc-800" />
|
<div className="h-full w-[2px] bg-zinc-800" />
|
||||||
</div>
|
</div>
|
||||||
<div className="markdown">
|
<div className="w-full markdown">
|
||||||
<Editable
|
<Editable
|
||||||
autoFocus
|
autoFocus
|
||||||
placeholder="What's on your mind?"
|
placeholder="What's on your mind?"
|
||||||
|
@ -55,9 +55,7 @@ export const useActiveAccount = create(
|
|||||||
const target = state.blocks.findIndex(
|
const target = state.blocks.findIndex(
|
||||||
(b: { id: string }) => b.id === id,
|
(b: { id: string }) => b.id === id,
|
||||||
);
|
);
|
||||||
if (target) {
|
state.blocks.splice(target, 1);
|
||||||
state.blocks.splice(target, 1);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
updateFollows: (list: any) => {
|
updateFollows: (list: any) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user