atmosphere explorer
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix navigation reloads

Juliet 068d2db8 5f9fa1eb

+16 -15
+7 -5
src/components/account.tsx
··· 1 1 import { createSignal, onMount, For, Show } from "solid-js"; 2 2 import Tooltip from "./tooltip.jsx"; 3 3 import { deleteStoredSession, getSession, OAuthUserAgent } from "@atcute/oauth-browser-client"; 4 - import { agent, Login, loginState, setLoginState } from "./login.jsx"; 4 + import { agent, Login, loginState, retrieveSession, setLoginState } from "./login.jsx"; 5 5 import { Did } from "@atcute/lexicons"; 6 6 import { resolveDidDoc } from "../utils/api.js"; 7 7 import { createStore } from "solid-js/store"; 8 8 import { Client, CredentialManager } from "@atcute/client"; 9 9 import { Modal } from "./modal.jsx"; 10 + import { useNavigate } from "@solidjs/router"; 10 11 11 12 const AccountManager = () => { 13 + const navigate = useNavigate(); 12 14 const [openManager, setOpenManager] = createSignal(false); 13 15 const [sessions, setSessions] = createStore<Record<string, string | undefined>>(); 14 16 const [avatar, setAvatar] = createSignal<string>(); 15 17 16 18 onMount(async () => { 19 + await retrieveSession(); 20 + if (loginState() && location.pathname === "/") navigate(`/at://${agent.sub}`); 21 + 17 22 const storedSessions = localStorage.getItem("atcute-oauth:sessions"); 18 23 if (storedSessions) { 19 24 const sessionDids = Object.keys(JSON.parse(storedSessions)) as Did[]; ··· 48 53 deleteStoredSession(did); 49 54 } 50 55 setSessions(did, undefined); 51 - if (currentSession === did) { 52 - setLoginState(false); 53 - window.location.reload; 54 - } 56 + if (currentSession === did) setLoginState(false); 55 57 }; 56 58 57 59 const getAvatar = async (did: Did) => {
+3 -2
src/components/create.tsx
··· 5 5 import * as monaco from "monaco-editor"; 6 6 import { theme } from "../components/settings.jsx"; 7 7 import Tooltip from "./tooltip.jsx"; 8 - import { useParams } from "@solidjs/router"; 8 + import { useNavigate, useParams } from "@solidjs/router"; 9 9 import { remove } from "@mary/exif-rm"; 10 10 import { TextInput } from "./text-input.jsx"; 11 11 import { Modal } from "./modal.jsx"; 12 12 13 13 export const RecordEditor = (props: { create: boolean; record?: any }) => { 14 + const navigate = useNavigate(); 14 15 const params = useParams(); 15 16 const [openDialog, setOpenDialog] = createSignal(false); 16 17 const [notice, setNotice] = createSignal(""); ··· 64 65 return; 65 66 } 66 67 setOpenDialog(false); 67 - window.location.href = `/${res.data.uri}`; 68 + navigate(`/${res.data.uri}`); 68 69 }; 69 70 70 71 const editRecord = async (formData: FormData) => {
+3 -6
src/layout.tsx
··· 1 1 import { createEffect, ErrorBoundary, onMount, Show, Suspense } from "solid-js"; 2 - import { A, RouteSectionProps, useLocation, useNavigate, useParams } from "@solidjs/router"; 3 - import { agent, loginState, retrieveSession } from "./components/login.jsx"; 2 + import { A, RouteSectionProps, useLocation, useParams } from "@solidjs/router"; 3 + import { loginState } from "./components/login.jsx"; 4 4 import { RecordEditor } from "./components/create.jsx"; 5 5 import Tooltip from "./components/tooltip.jsx"; 6 6 import { NavBar } from "./components/navbar.jsx"; ··· 15 15 const Layout = (props: RouteSectionProps<unknown>) => { 16 16 const params = useParams(); 17 17 const location = useLocation(); 18 - const navigate = useNavigate(); 19 18 20 - onMount(async () => { 19 + onMount(() => { 21 20 if (location.search.includes("kawaii=true")) localStorage.kawaii = "true"; 22 - await retrieveSession(); 23 - if (loginState() && location.pathname === "/") navigate(`/at://${agent.sub}`); 24 21 }); 25 22 26 23 createEffect(async () => {
+3 -2
src/views/record.tsx
··· 1 1 import { CredentialManager, Client } from "@atcute/client"; 2 2 3 - import { useParams } from "@solidjs/router"; 3 + import { useNavigate, useParams } from "@solidjs/router"; 4 4 import { createSignal, onMount, Show } from "solid-js"; 5 5 6 6 import { Backlinks } from "../components/backlinks.jsx"; ··· 21 21 import { Modal } from "../components/modal.jsx"; 22 22 23 23 export const RecordView = () => { 24 + const navigate = useNavigate(); 24 25 const params = useParams(); 25 26 const [record, setRecord] = 26 27 createSignal<InferXRPCBodyOutput<ComAtprotoRepoGetRecord.mainSchema["output"]>>(); ··· 109 110 rkey: params.rkey, 110 111 }, 111 112 }); 112 - window.location.href = `/at://${params.repo}/${params.collection}`; 113 + navigate(`/at://${params.repo}/${params.collection}`); 113 114 }; 114 115 115 116 const checkUri = (uri: string) => {