feat: rtl (#17860)
This commit is contained in:
@@ -51,4 +51,5 @@ class EventManager<EventMap extends Record<string, unknown[]>> {
|
||||
export const eventManager = new EventManager<{
|
||||
'user.login': [];
|
||||
'auth.logout': [];
|
||||
'language.change': [{ name: string; code: string; rtl?: boolean }];
|
||||
}>();
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import { langs } from '$lib/constants';
|
||||
import { eventManager } from '$lib/stores/event-manager.svelte';
|
||||
|
||||
class LanguageManager {
|
||||
rtl = $state(false);
|
||||
|
||||
setLanguage(code: string) {
|
||||
const item = langs.find((item) => item.code === code);
|
||||
if (!item) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.rtl = item.rtl ?? false;
|
||||
|
||||
document.body.setAttribute('dir', item.rtl ? 'rtl' : 'ltr');
|
||||
|
||||
eventManager.emit('language.change', item);
|
||||
}
|
||||
}
|
||||
|
||||
export const languageManager = new LanguageManager();
|
||||
Reference in New Issue
Block a user