A photo manager for VRChat.
0
fork

Configure Feed

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

account page shows stuff when logged out, profile sync is better?

+27 -4
+8 -1
src/Components/App.tsx
··· 161 161 162 162 return ( 163 163 <div class="container"> 164 - <NavBar setLoadingType={setLoadingType} loggedIn={loggedIn} setStorageInfo={setStorageInfo} setIsPhotosSyncing={setIsPhotosSyncing} /> 164 + <NavBar 165 + setLoadingType={setLoadingType} 166 + loggedIn={loggedIn} 167 + setStorageInfo={setStorageInfo} 168 + setIsPhotosSyncing={setIsPhotosSyncing} /> 169 + 165 170 <PhotoList 166 171 storageInfo={storageInfo} 167 172 isPhotosSyncing={isPhotosSyncing} ··· 184 189 setConfirmationBox={setConfirmationBox} /> 185 190 186 191 <SettingsMenu 192 + setLoggedIn={setLoggedIn} 193 + setLoadingType={setLoadingType} 187 194 photoCount={photoCount} 188 195 photoSize={photoSize} 189 196 setRequestPhotoReload={setRequestPhotoReload}
+1 -1
src/Components/NavBar.tsx
··· 201 201 props.setLoadingType('none'); 202 202 }, 5000); 203 203 204 - invoke('start_user_auth'); 204 + invoke('start_user_auth'); 205 205 setDropdownVisibility(false); 206 206 }}>Sign In</div> 207 207 </Show>
+18 -2
src/Components/SettingsMenu.tsx
··· 6 6 import { fetch, ResponseType } from "@tauri-apps/api/http" 7 7 8 8 class SettingsMenuProps{ 9 + setLoadingType!: ( type: string ) => string; 9 10 photoCount!: () => number; 10 11 photoSize!: () => number; 11 12 setRequestPhotoReload!: ( val: boolean ) => boolean; ··· 13 14 storageInfo!: () => { storage: number, used: number, sync: boolean }; 14 15 setStorageInfo!: ( info: { storage: number, used: number, sync: boolean } ) => { storage: number, used: number, sync: boolean }; 15 16 setConfirmationBox!: ( text: string, cb: () => void ) => void; 17 + setLoggedIn!: ( val: { loggedIn: boolean, username: string, avatar: string, id: string, serverVersion: string } ) => { loggedIn: boolean, username: string, avatar: string, id: string, serverVersion: string }; 16 18 } 17 19 18 20 let SettingsMenu = ( props: SettingsMenuProps ) => { ··· 182 184 } 183 185 184 186 console.log(data.data); 187 + props.setLoggedIn({ loggedIn: true, username: data.data.user.username, avatar: data.data.user.avatar, id: data.data.user._id, serverVersion: data.data.user.serverVersion }); 185 188 props.setStorageInfo({ storage: data.data.user.storage, used: data.data.user.used, sync: data.data.user.settings.enableSync }); 186 189 }) 187 190 .catch(e => { ··· 318 321 <div class="settings-block"> 319 322 <h1>Account Settings</h1> 320 323 321 - <Show when={props.loggedIn().loggedIn}> 324 + <Show when={props.loggedIn().loggedIn} fallback={ 325 + <div> 326 + You aren't logged in. To enable cloud sync and sharing features you need to login to your PhazeID.<br /><br /> 327 + <div class="button" onClick={() => { 328 + props.setLoadingType('auth'); 329 + 330 + setTimeout(() => { 331 + props.setLoadingType('none'); 332 + }, 5000); 333 + 334 + invoke('start_user_auth'); 335 + }}>Login</div> 336 + </div> 337 + }> 322 338 <div class="account-profile"> 323 339 <div class="account-pfp" style={{ background: `url('https://cdn.phazed.xyz/id/avatars/${props.loggedIn().id}/${props.loggedIn().avatar}.png')` }}></div> 324 340 <div class="account-desc"> 325 - <div class="reload-photos" onClick={() => refreshAccount()}><i class="fa-solid fa-arrows-rotate"></i></div> 341 + <div class="reload-photos" onClick={() => refreshAccount()} style={{ opacity: 1 }}><i class="fa-solid fa-arrows-rotate"></i></div> 326 342 <h2>{ props.loggedIn().username }</h2> 327 343 328 344 <Show when={props.storageInfo().sync}>