27 lines
		
	
	
		
			701 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			701 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { reactive } from 'vue';
 | |
| import * as Misskey from 'misskey-js';
 | |
| import { api } from './os';
 | |
| import { miLocalStorage } from './local-storage';
 | |
| 
 | |
| // TODO: 他のタブと永続化されたstateを同期
 | |
| 
 | |
| const cached = miLocalStorage.getItem('instance');
 | |
| 
 | |
| // TODO: instanceをリアクティブにするかは再考の余地あり
 | |
| 
 | |
| export const instance: Misskey.entities.InstanceMetadata = reactive(cached ? JSON.parse(cached) : {
 | |
| 	// TODO: set default values
 | |
| });
 | |
| 
 | |
| export async function fetchInstance() {
 | |
| 	const meta = await api('meta', {
 | |
| 		detail: false,
 | |
| 	});
 | |
| 
 | |
| 	for (const [k, v] of Object.entries(meta)) {
 | |
| 		instance[k] = v;
 | |
| 	}
 | |
| 
 | |
| 	miLocalStorage.setItem('instance', JSON.stringify(instance));
 | |
| }
 | 
