Fix(frontend): role users/timeline visiable ui (#12305)
This commit is contained in:
		
							parent
							
								
									c541ced3ab
								
							
						
					
					
						commit
						31174d6b79
					
				
					 1 changed files with 13 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -18,11 +18,19 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
			
		|||
	<MkSpacer v-else-if="tab === 'users'" :contentMax="1200">
 | 
			
		||||
		<div class="_gaps_s">
 | 
			
		||||
			<div v-if="role">{{ role.description }}</div>
 | 
			
		||||
			<MkUserList :pagination="users" :extractor="(item) => item.user"/>
 | 
			
		||||
			<MkUserList v-if="visiable" :pagination="users" :extractor="(item) => item.user"/>
 | 
			
		||||
			<div v-else-if="!visiable" class="_fullinfo">
 | 
			
		||||
				<img :src="infoImageUrl" class="_ghost"/>
 | 
			
		||||
				<div>{{ i18n.ts.nothing }}</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	</MkSpacer>
 | 
			
		||||
	<MkSpacer v-else-if="tab === 'timeline'" :contentMax="700">
 | 
			
		||||
		<MkTimeline ref="timeline" src="role" :role="props.role"/>
 | 
			
		||||
		<MkTimeline v-if="visiable" ref="timeline" src="role" :role="props.role"/>
 | 
			
		||||
		<div v-else-if="!visiable" class="_fullinfo">
 | 
			
		||||
			<img :src="infoImageUrl" class="_ghost"/>
 | 
			
		||||
			<div>{{ i18n.ts.nothing }}</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	</MkSpacer>
 | 
			
		||||
</MkStickyContainer>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			@ -35,7 +43,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js';
 | 
			
		|||
import { i18n } from '@/i18n.js';
 | 
			
		||||
import MkTimeline from '@/components/MkTimeline.vue';
 | 
			
		||||
import { instanceName } from '@/config.js';
 | 
			
		||||
import { serverErrorImageUrl } from '@/instance.js';
 | 
			
		||||
import { serverErrorImageUrl, infoImageUrl } from '@/instance.js';
 | 
			
		||||
 | 
			
		||||
const props = withDefaults(defineProps<{
 | 
			
		||||
	role: string;
 | 
			
		||||
| 
						 | 
				
			
			@ -47,6 +55,7 @@ const props = withDefaults(defineProps<{
 | 
			
		|||
let tab = $ref(props.initialTab);
 | 
			
		||||
let role = $ref();
 | 
			
		||||
let error = $ref();
 | 
			
		||||
let visiable = $ref(false);
 | 
			
		||||
 | 
			
		||||
watch(() => props.role, () => {
 | 
			
		||||
	os.api('roles/show', {
 | 
			
		||||
| 
						 | 
				
			
			@ -54,6 +63,7 @@ watch(() => props.role, () => {
 | 
			
		|||
	}).then(res => {
 | 
			
		||||
		role = res;
 | 
			
		||||
		document.title = `${role?.name} | ${instanceName}`;
 | 
			
		||||
		visiable = res.isExplorable && res.isPublic;
 | 
			
		||||
	}).catch((err) => {
 | 
			
		||||
		if (err.code === 'NO_SUCH_ROLE') {
 | 
			
		||||
			error = i18n.ts.noRole;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue