Show global feed when logged out

This commit is contained in:
Kieran 2023-01-02 11:59:03 +00:00
parent 503b0e0f7a
commit 8f824aaa63
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941
4 changed files with 20 additions and 5 deletions

View File

@ -3,13 +3,13 @@ import EventKind from "../nostr/EventKind";
import { Subscriptions } from "../nostr/Subscriptions";
import useSubscription from "./Subscription";
export default function useTimelineFeed(pubKeys) {
export default function useTimelineFeed(pubKeys, global = false) {
const sub = useMemo(() => {
if (!Array.isArray(pubKeys)) {
pubKeys = [pubKeys];
}
if (!pubKeys || pubKeys.length === 0) {
if (!global && (!pubKeys || pubKeys.length === 0)) {
return null;
}

View File

@ -14,6 +14,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
export default function Layout(props) {
const dispatch = useDispatch();
const navigate = useNavigate();
const isInit = useSelector(s => s.login.loggedOut);
const key = useSelector(s => s.login.publicKey);
const relays = useSelector(s => s.login.relays);
const notifications = useSelector(s => s.login.notifications);
@ -46,6 +47,10 @@ export default function Layout(props) {
)
}
if (typeof isInit !== "boolean") {
return null;
}
return (
<div className="page">
<div className="header">

View File

@ -3,11 +3,12 @@ import { useSelector } from "react-redux";
import Note from "../element/Note";
import useTimelineFeed from "../feed/TimelineFeed";
import { NoteCreator } from "../element/NoteCreator";
import { useMemo } from "react";
export default function RootPage() {
const pubKey = useSelector(s => s.login.publicKey);
const follows = useSelector(a => a.login.follows);
const { notes } = useTimelineFeed(follows);
const [loggedOut, pubKey, follows] = useSelector(s => [s.login.loggedOut, s.login.publicKey, s.login.follows]);
const { notes } = useTimelineFeed(follows, loggedOut === true);
function followHints() {
if (follows?.length === 0 && pubKey) {

View File

@ -8,6 +8,11 @@ const NotificationsReadItem = "notifications-read";
const LoginSlice = createSlice({
name: "Login",
initialState: {
/**
* If there is no login
*/
loggedOut: null,
/**
* Current user private key
*/
@ -49,7 +54,11 @@ const LoginSlice = createSlice({
if (state.privateKey) {
window.localStorage.removeItem(Nip07PublicKeyItem); // reset nip07 if using private key
state.publicKey = secp.utils.bytesToHex(secp.schnorr.getPublicKey(state.privateKey, true));
state.loggedOut = false;
} else {
state.loggedOut = true;
}
state.relays = {
"wss://nostr.v0l.io": { read: true, write: true },
"wss://relay.damus.io": { read: true, write: true },