Compare commits
	
		
			2 commits
		
	
	
		
			149aa56cb8
			...
			e882a8c0e8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | e882a8c0e8 | ||
|  | a0432af982 | 
					 3 changed files with 20 additions and 4 deletions
				
			
		|  | @ -1,6 +1,9 @@ | |||
| import { persistentAtom } from "@nanostores/persistent"; | ||||
| import { useStore } from "@nanostores/solid"; | ||||
| import { useNavigate } from "@solidjs/router"; | ||||
| import { createOAuthAPIClient, createRestAPIClient } from "masto"; | ||||
| import { action } from "nanostores"; | ||||
| import { createRenderEffect } from "solid-js"; | ||||
| 
 | ||||
| export type Account = { | ||||
|   site: string; | ||||
|  | @ -25,7 +28,7 @@ interface OAuth2AccessToken { | |||
| 
 | ||||
| async function oauth2TokenViaAuthCode(app: RegisteredApp, authCode: string) { | ||||
|   const resp = await fetch(new URL("./oauth/token", app.site), { | ||||
|     method: 'post', | ||||
|     method: "post", | ||||
|     body: JSON.stringify({ | ||||
|       grant_type: "authorization_code", | ||||
|       code: authCode, | ||||
|  | @ -97,7 +100,7 @@ export const $registeredApps = persistentAtom<{ | |||
| 
 | ||||
| async function getAppAccessToken(app: RegisteredApp) { | ||||
|   const resp = await fetch(new URL("./oauth/token", app.site), { | ||||
|     method: 'post', | ||||
|     method: "post", | ||||
|     headers: { | ||||
|       "Content-Type": "application/json", | ||||
|     }, | ||||
|  | @ -172,3 +175,15 @@ export const getOrRegisterApp = action( | |||
|     return all[site]; | ||||
|   }, | ||||
| ); | ||||
| 
 | ||||
| export function useAccts() { | ||||
|   const accts = useStore($accounts); | ||||
|   const naviagte = useNavigate(); | ||||
| 
 | ||||
|   createRenderEffect(() => { | ||||
|     if (accts().length > 0) return; | ||||
|     naviagte("/accounts/sign-in"); | ||||
|   }); | ||||
| 
 | ||||
|   return accts; | ||||
| } | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ import { | |||
|   untrack, | ||||
|   onMount, | ||||
| } from "solid-js"; | ||||
| import { $accounts } from "../accounts/stores"; | ||||
| import { $accounts, useAccts } from "../accounts/stores"; | ||||
| import { useDocumentTitle } from "../utils"; | ||||
| import { useStore } from "@nanostores/solid"; | ||||
| import { useMastoClientFor } from "../masto/clients"; | ||||
|  | @ -152,7 +152,7 @@ const TimelinePanel: Component<{ | |||
| const Home: Component = () => { | ||||
|   let panelList: HTMLDivElement; | ||||
|   useDocumentTitle("Timelines"); | ||||
|   const accounts = useStore($accounts); | ||||
|   const accounts = useAccts(); | ||||
|   const now = createTimeSource(); | ||||
| 
 | ||||
|   const client = useMastoClientFor(() => accounts()[0]); | ||||
|  |  | |||
|  | @ -23,5 +23,6 @@ export default defineConfig(({ mode }) => ({ | |||
|   }, | ||||
|   build: { | ||||
|     target: ["firefox98", "safari15.4", "ios15.4", "chrome84", "edge87"], | ||||
|     sourcemap: true, | ||||
|   }, | ||||
| })); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue