Support remote objects in search (#9479)
* Support remote objects in search Closes #9428 * Use account instead of localStorage * Use useRouter instead of mainRouter Co-authored-by: Chaos <chaoticryptidz@owo.monster>
This commit is contained in:
		
							parent
							
								
									91356b1805
								
							
						
					
					
						commit
						ecbefce2aa
					
				
					 1 changed files with 25 additions and 0 deletions
				
			
		|  | @ -12,12 +12,37 @@ import { computed } from 'vue'; | |||
| import XNotes from '@/components/MkNotes.vue'; | ||||
| import { i18n } from '@/i18n'; | ||||
| import { definePageMetadata } from '@/scripts/page-metadata'; | ||||
| import * as os from '@/os'; | ||||
| import { useRouter } from '@/router'; | ||||
| import { $i } from '@/account'; | ||||
| 
 | ||||
| const router = useRouter(); | ||||
| 
 | ||||
| const props = defineProps<{ | ||||
| 	query: string; | ||||
| 	channel?: string; | ||||
| }>(); | ||||
| 
 | ||||
| const query = props.query; | ||||
| 
 | ||||
| if ($i != null) { | ||||
| 	if (query.startsWith('https://') || (query.startsWith('@') && !query.includes(' '))) { | ||||
| 		const promise = os.api('ap/show', { | ||||
| 			uri: props.query, | ||||
| 		}); | ||||
| 
 | ||||
| 		os.promiseDialog(promise, null, null, i18n.ts.fetchingAsApObject); | ||||
| 
 | ||||
| 		const res = await promise; | ||||
| 
 | ||||
| 		if (res.type === 'User') { | ||||
| 			router.replace(`/@${res.object.username}@${res.object.host}`); | ||||
| 		} else if (res.type === 'Note') { | ||||
| 			router.replace(`/notes/${res.object.id}`); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| const pagination = { | ||||
| 	endpoint: 'notes/search' as const, | ||||
| 	limit: 10, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue