[Glitch] Redirect non-logged-in user to owner statuses on single user mode
Port 7afc6a630c to glitch-soc
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
			
			
This commit is contained in:
		
				
					committed by
					
						 Claire
						Claire
					
				
			
			
				
	
			
			
			
						parent
						
							1850166de9
						
					
				
				
					commit
					5d4d4a69f6
				
			| @@ -56,7 +56,7 @@ import { | ||||
|   PrivacyPolicy, | ||||
| } from './util/async-components'; | ||||
| import { HotKeys } from 'react-hotkeys'; | ||||
| import { me } from 'flavours/glitch/initial_state'; | ||||
| import initialState, { me, owner, singleUserMode } from '../../initial_state'; | ||||
| import { closeOnboarding, INTRODUCTION_VERSION } from 'flavours/glitch/actions/onboarding'; | ||||
| import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; | ||||
| import { Helmet } from 'react-helmet'; | ||||
| @@ -175,6 +175,8 @@ class SwitchingColumnsArea extends React.PureComponent { | ||||
|       } else { | ||||
|         redirect = <Redirect from='/' to='/getting-started' exact />; | ||||
|       } | ||||
|     } else if (singleUserMode && owner && initialState?.accounts[owner]) { | ||||
|       redirect = <Redirect from='/' to={`/@${initialState.accounts[owner].username}`} exact />; | ||||
|     } else { | ||||
|       redirect = <Redirect from='/' to='/explore' exact />; | ||||
|     } | ||||
|   | ||||
| @@ -1,5 +1,44 @@ | ||||
| // @ts-check | ||||
|  | ||||
| /** | ||||
|  * @typedef Emoji | ||||
|  * @property {string} shortcode | ||||
|  * @property {string} static_url | ||||
|  * @property {string} url | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef AccountField | ||||
|  * @property {string} name | ||||
|  * @property {string} value | ||||
|  * @property {string} verified_at | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef Account | ||||
|  * @property {string} acct | ||||
|  * @property {string} avatar | ||||
|  * @property {string} avatar_static | ||||
|  * @property {boolean} bot | ||||
|  * @property {string} created_at | ||||
|  * @property {boolean=} discoverable | ||||
|  * @property {string} display_name | ||||
|  * @property {Emoji[]} emojis | ||||
|  * @property {AccountField[]} fields | ||||
|  * @property {number} followers_count | ||||
|  * @property {number} following_count | ||||
|  * @property {boolean} group | ||||
|  * @property {string} header | ||||
|  * @property {string} header_static | ||||
|  * @property {string} id | ||||
|  * @property {string=} last_status_at | ||||
|  * @property {boolean} locked | ||||
|  * @property {string} note | ||||
|  * @property {number} statuses_count | ||||
|  * @property {string} url | ||||
|  * @property {string} username | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {[code: string, name: string, localName: string]} InitialStateLanguage | ||||
|  */ | ||||
| @@ -22,11 +61,13 @@ | ||||
|  * @property {string} locale | ||||
|  * @property {string | null} mascot | ||||
|  * @property {string=} me | ||||
|  * @property {string=} owner | ||||
|  * @property {boolean} profile_directory | ||||
|  * @property {boolean} registrations_open | ||||
|  * @property {boolean} reduce_motion | ||||
|  * @property {string} repository | ||||
|  * @property {boolean} search_enabled | ||||
|  * @property {boolean} single_user_mode | ||||
|  * @property {string} source_url | ||||
|  * @property {string} streaming_api_base_url | ||||
|  * @property {boolean} timeline_preview | ||||
| @@ -41,13 +82,14 @@ | ||||
|  | ||||
| /** | ||||
|  * @typedef InitialState | ||||
|  * @property {Record<string, Account>} accounts | ||||
|  * @property {InitialStateLanguage[]} languages | ||||
|  * @property {InitialStateMeta} meta | ||||
|  */ | ||||
|  | ||||
| const element = document.getElementById('initial-state'); | ||||
| /** @type {InitialState | undefined} */ | ||||
| const initialState = element && JSON.parse(element.textContent); | ||||
| const initialState = element?.textContent && JSON.parse(element.textContent); | ||||
|  | ||||
| // Glitch-soc-specific “local settings” | ||||
| try { | ||||
| @@ -63,35 +105,38 @@ try { | ||||
|  */ | ||||
| const getMeta = (prop) => initialState?.meta && initialState.meta[prop]; | ||||
|  | ||||
| export const domain = getMeta('domain'); | ||||
| export const reduceMotion = getMeta('reduce_motion'); | ||||
| export const activityApiEnabled = getMeta('activity_api_enabled'); | ||||
| export const autoPlayGif = getMeta('auto_play_gif'); | ||||
| export const displayMedia = getMeta('display_media'); | ||||
| export const expandSpoilers = getMeta('expand_spoilers'); | ||||
| export const unfollowModal = getMeta('unfollow_modal'); | ||||
| export const boostModal = getMeta('boost_modal'); | ||||
| export const cropImages = getMeta('crop_images'); | ||||
| export const deleteModal = getMeta('delete_modal'); | ||||
| export const me = getMeta('me'); | ||||
| export const searchEnabled = getMeta('search_enabled'); | ||||
| export const maxChars = (initialState && initialState.max_toot_chars) || 500; | ||||
| export const disableSwiping = getMeta('disable_swiping'); | ||||
| export const displayMedia = getMeta('display_media'); | ||||
| export const domain = getMeta('domain'); | ||||
| export const expandSpoilers = getMeta('expand_spoilers'); | ||||
| export const forceSingleColumn = !getMeta('advanced_layout'); | ||||
| export const limitedFederationMode = getMeta('limited_federation_mode'); | ||||
| export const mascot = getMeta('mascot'); | ||||
| export const me = getMeta('me'); | ||||
| export const owner = getMeta('owner'); | ||||
| export const profile_directory = getMeta('profile_directory'); | ||||
| export const reduceMotion = getMeta('reduce_motion'); | ||||
| export const registrationsOpen = getMeta('registrations_open'); | ||||
| export const repository = getMeta('repository'); | ||||
| export const searchEnabled = getMeta('search_enabled'); | ||||
| export const showTrends = getMeta('trends'); | ||||
| export const singleUserMode = getMeta('single_user_mode'); | ||||
| export const source_url = getMeta('source_url'); | ||||
| export const version = getMeta('version'); | ||||
| export const mascot = getMeta('mascot'); | ||||
| export const profile_directory = getMeta('profile_directory'); | ||||
| export const forceSingleColumn = !getMeta('advanced_layout'); | ||||
| export const timelinePreview = getMeta('timeline_preview'); | ||||
| export const title = getMeta('title'); | ||||
| export const unfollowModal = getMeta('unfollow_modal'); | ||||
| export const useBlurhash = getMeta('use_blurhash'); | ||||
| export const usePendingItems = getMeta('use_pending_items'); | ||||
| export const showTrends = getMeta('trends'); | ||||
| export const title = getMeta('title'); | ||||
| export const disableSwiping = getMeta('disable_swiping'); | ||||
| export const timelinePreview = getMeta('timeline_preview'); | ||||
| export const activityApiEnabled = getMeta('activity_api_enabled'); | ||||
| export const version = getMeta('version'); | ||||
| export const languages = initialState?.languages; | ||||
|  | ||||
| // Glitch-soc-specific settings | ||||
| export const maxChars = (initialState && initialState.max_toot_chars) || 500; | ||||
| export const favouriteModal = getMeta('favourite_modal'); | ||||
| export const pollLimits = (initialState && initialState.poll_limits); | ||||
| export const defaultContentType = getMeta('default_content_type'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user