Files
custum-hyprpanel/scss/options_trackers.ts
Jas Singh 2c72cc66d8 Implemented strict linting standards and prettier formatting config. (#248)
* Implemented strict linting standards and prettier formatting config.

* More linter fixes and type updates.

* More linter updates and type fixes

* Remove noisy comments

* Linter and type updates

* Linter, formatting and type updates.

* Linter updates

* Type updates

* Type updates

* fixed all linter errors

* Fixed all linting, formatting and type issues.

* Resolve merge conflicts.
2024-09-14 16:20:05 -07:00

59 lines
1.9 KiB
TypeScript

import icons from 'lib/icons';
import { bash, dependencies, Notify, isAnImage } from 'lib/utils';
import options from 'options';
import Wallpaper from 'services/Wallpaper';
const { matugen } = options.theme;
const { mode, scheme_type, contrast } = options.theme.matugen_settings;
const ensureMatugenWallpaper = (): void => {
const wallpaperPath = options.wallpaper.image.value;
if (matugen.value && (!options.wallpaper.image.value.length || !isAnImage(wallpaperPath))) {
Notify({
summary: 'Matugen Failed',
body: "Please select a wallpaper in 'Theming > General' first.",
iconName: icons.ui.warning,
timeout: 7000,
});
matugen.value = false;
}
};
export const initializeTrackers = (resetCssFunc: () => void): void => {
matugen.connect('changed', () => {
ensureMatugenWallpaper();
options.resetTheme();
});
mode.connect('changed', () => {
options.resetTheme();
});
scheme_type.connect('changed', () => {
options.resetTheme();
});
contrast.connect('changed', () => {
options.resetTheme();
});
Wallpaper.connect('changed', () => {
console.info('Wallpaper changed, regenerating Matugen colors...');
if (options.theme.matugen.value) {
options.resetTheme();
resetCssFunc();
}
});
options.wallpaper.image.connect('changed', () => {
if ((!Wallpaper.isRunning() && options.theme.matugen.value) || !options.wallpaper.enable.value) {
console.info('Wallpaper path changed, regenerating Matugen colors...');
options.resetTheme();
resetCssFunc();
}
if (options.wallpaper.pywal.value && dependencies('wal')) {
const wallpaperPath = options.wallpaper.image.value;
bash(`wal -i ${wallpaperPath}`);
}
});
};