Skip to content

Commit 41a0c6e

Browse files
committed
feat: add background services language change function
1 parent f7cb86b commit 41a0c6e

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

apps/browser-extension-wallet/src/lib/scripts/background/config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export const backgroundServiceProperties: RemoteApiProperties<BackgroundService>
2323
handleOpenNamiBrowser: RemoteApiPropertyType.MethodReturningPromise,
2424
closeAllTabsAndOpenPopup: RemoteApiPropertyType.MethodReturningPromise,
2525
handleChangeTheme: RemoteApiPropertyType.MethodReturningPromise,
26+
handleChangeLanguage: RemoteApiPropertyType.MethodReturningPromise,
2627
handleChangeMode: RemoteApiPropertyType.MethodReturningPromise,
2728
clearBackgroundStorage: RemoteApiPropertyType.MethodReturningPromise,
2829
getBackgroundStorage: RemoteApiPropertyType.MethodReturningPromise,

apps/browser-extension-wallet/src/lib/scripts/background/services/utilityServices.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { POPUP_WINDOW_NAMI_TITLE } from '@utils/constants';
4242
import { catchAndBrandExtensionApiError } from '@utils/catch-and-brand-extension-api-error';
4343
import { initCardanoTokenPrices } from './cardanoTokenPrices';
4444
import { pollController$ } from '../session/poll-controller';
45+
import { Language } from '@lace/translation';
4546

4647
export const requestMessage$ = new Subject<Message>();
4748
export const backendFailures$ = new BehaviorSubject(0);
@@ -181,6 +182,8 @@ const closeAllTabsAndOpenPopup = async () => {
181182

182183
const handleChangeTheme = (data: ChangeThemeData) => requestMessage$.next({ type: MessageTypes.CHANGE_THEME, data });
183184

185+
const handleChangeLanguage = (data: Language) => requestMessage$.next({ type: MessageTypes.CHANGE_LANGUAGE, data });
186+
184187
const handleChangeMode = (data: ChangeModeData) => requestMessage$.next({ type: MessageTypes.CHANGE_MODE, data });
185188

186189
const { ADA_PRICE_CHECK_INTERVAL, SAVED_PRICE_DURATION } = config();
@@ -352,6 +355,7 @@ export const exposeBackgroundService = (wallet$: Observable<ActiveWallet>): void
352355
migrationState$,
353356
coinPrices,
354357
handleChangeTheme,
358+
handleChangeLanguage,
355359
handleChangeMode,
356360
clearBackgroundStorage,
357361
getBackgroundStorage,

apps/browser-extension-wallet/src/lib/scripts/types/background-service.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { themes } from '@providers/ThemeProvider';
33
import { BackgroundStorage, MigrationState } from './storage';
44
import { CoinPrices } from './prices';
55
import type { clearBackgroundStorage } from '../background/storage';
6+
import { Language } from '@lace/translation';
67

78
export enum BaseChannels {
89
BACKGROUND_ACTIONS = 'background-actions'
@@ -31,7 +32,8 @@ export enum MessageTypes {
3132
HTTP_CONNECTION = 'http-connnection',
3233
WS_CONNECTION = 'ws-connnection',
3334
OPEN_COLLATERAL_SETTINGS = 'open-collateral-settings',
34-
CHANGE_MODE = 'change-mode'
35+
CHANGE_MODE = 'change-mode',
36+
CHANGE_LANGUAGE = 'change-language'
3537
}
3638

3739
export enum BrowserViewSections {
@@ -84,12 +86,22 @@ interface ChangeMode {
8486
type: MessageTypes.CHANGE_MODE;
8587
data: ChangeModeData;
8688
}
89+
interface ChangeThemeMessage {
90+
type: MessageTypes.CHANGE_THEME;
91+
data: ChangeThemeData;
92+
}
93+
94+
interface ChangeLanguageMessage {
95+
type: MessageTypes.CHANGE_LANGUAGE;
96+
data: Language;
97+
}
8798
export type Message =
8899
| ChangeThemeMessage
89100
| HTTPConnectionMessage
90101
| WSConnectionMessage
91102
| OpenBrowserMessage
92-
| ChangeMode;
103+
| ChangeMode
104+
| ChangeLanguageMessage;
93105

94106
export type UnhandledError = {
95107
type: 'error' | 'unhandledrejection';
@@ -104,6 +116,7 @@ export type BackgroundService = {
104116
migrationState$: BehaviorSubject<MigrationState | undefined>;
105117
coinPrices: CoinPrices;
106118
handleChangeTheme: (data: ChangeThemeData) => void;
119+
handleChangeLanguage: (data: Language) => void;
107120
handleChangeMode: (data: ChangeModeData) => void;
108121
setBackgroundStorage: (data: BackgroundStorage) => Promise<void>;
109122
getBackgroundStorage: () => Promise<BackgroundStorage>;

apps/browser-extension-wallet/src/lib/scripts/types/storage.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
RawFeatureFlagPayloads
99
} from '@lib/scripts/types/feature-flags';
1010
import { LogLevelString } from '@lace/common';
11+
import { Language } from '@lace/translation';
1112

1213
export interface PendingMigrationState {
1314
from: string;
@@ -49,6 +50,7 @@ export interface BackgroundStorage {
4950
dappInjectCompatibilityMode?: boolean;
5051
optedInBeta?: boolean;
5152
logLevel?: LogLevelString;
53+
languageChoice?: Language;
5254
}
5355

5456
export type BackgroundStorageKeys = keyof BackgroundStorage;

0 commit comments

Comments
 (0)