* Copyright (c) 2024 Huawei Technologies Co., Ltd.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as TurboModuleRegistry from '../../../TurboModule/TurboModuleRegistry';
import type { TurboModule } from '../../../TurboModule/RCTExport';
type NativeStatusBarManagerConstants = {
HEIGHT: number;
DEFAULT_BACKGROUND_COLOR?: string;
};
export interface Spec extends TurboModule {
getConstants: () => NativeStatusBarManagerConstants;
setColor: (color: number, animated: boolean) => void;
setTranslucent: (translucent: boolean) => void;
setStyle: (statusBarStyle: string) => void;
setHidden: (hidden: boolean) => void;
}
const NativeModule = TurboModuleRegistry.getEnforcing<Spec>('StatusBarManager');
let constants: NativeStatusBarManagerConstants | null = null;
const NativeStatusBarManager: Spec = {
getConstants(): NativeStatusBarManagerConstants {
if (constants == null) {
constants = NativeModule.getConstants();
}
return constants;
},
setColor(color: number, animated: boolean): void {
NativeModule.setColor(color, animated);
},
setTranslucent(translucent: boolean): void {
NativeModule.setTranslucent(translucent);
},
setStyle(statusBarStyle: string): void {
NativeModule.setStyle(statusBarStyle);
},
setHidden(hidden: boolean): void {
NativeModule.setHidden(hidden);
},
};
export default NativeStatusBarManager;