diff --git a/src/Router.tsx b/src/Router.tsx index 532168b..985c024 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -1,7 +1,7 @@ import { Component, createResource, lazy } from 'solid-js'; import { Routes, Route, Navigate, RouteDataFuncArgs } from "@solidjs/router"; -import { PrimalWindow } from './types/primal'; +import { ComponentLog, PrimalWindow } from './types/primal'; import { fetchKnownProfiles } from './lib/profile'; import { useHomeContext } from './contexts/HomeContext'; @@ -41,6 +41,8 @@ const Menu = lazy(() => import('./pages/Settings/Menu')); const primalWindow = window as PrimalWindow; +const isDev = localStorage.getItem('devMode') === 'true'; + const Router: Component = () => { const account = useAccountContext(); @@ -54,7 +56,7 @@ const Router: Component = () => { const notifications = useNotificationsContext(); const search = useSearchContext(); - const loadPrimalStores = () => { + if (isDev) { primalWindow.primal = { account, explore, @@ -67,9 +69,10 @@ const Router: Component = () => { settings, thread, }; - }; - primalWindow.loadPrimalStores = loadPrimalStores; + primalWindow.onPrimalComponentMount = (data: ComponentLog) => {}; + primalWindow.onPrimalComponentCleanup = (data: ComponentLog) => {}; + } const getKnownProfiles = ({ params }: RouteDataFuncArgs) => { const [profiles] = createResource(params.vanityName, fetchKnownProfiles) diff --git a/src/components/Avatar/Avatar.tsx b/src/components/Avatar/Avatar.tsx index 90b6d2d..04c3e33 100644 --- a/src/components/Avatar/Avatar.tsx +++ b/src/components/Avatar/Avatar.tsx @@ -1,17 +1,18 @@ import { Component, createMemo, createSignal, Show } from 'solid-js'; import defaultAvatar from '../../assets/icons/default_nostrich.svg'; import { useMediaContext } from '../../contexts/MediaContext'; -import { getMediaUrl } from '../../lib/media'; +import { hookForDev } from '../../lib/devTools'; import { MediaSize, PrimalUser } from '../../types/primal'; import VerificationCheck from '../VerificationCheck/VerificationCheck'; import styles from './Avatar.module.scss'; const Avatar: Component<{ - src: string | undefined, + src?: string | undefined, size?: "xxs" | "xss" | "xs" | "vs" | "sm" | "md" | "lg" | "xl" | "xxl", user?: PrimalUser, highlightBorder?: boolean, + id?: string, }> = (props) => { const media = useMediaContext(); @@ -78,15 +79,21 @@ const Avatar: Component<{ break; }; - const url = media?.actions.getMediaUrl(props.src, size, true); + const src = props.user?.picture || props.src; + + if (!src) { + return defaultAvatar; + } + + const url = media?.actions.getMediaUrl(src, size, true); setIsCached(!!url); - return url ?? props.src; + return url ?? src; }); const notCachedFlag = () => { - const dev = JSON.parse(localStorage.getItem('devMode') || 'false'); + const dev = localStorage.getItem('devMode') === 'true'; // @ts-ignore if (isCached() || !dev) { @@ -97,7 +104,11 @@ const Avatar: Component<{ } return ( -