mirror of
https://github.com/lifegpc/eh-downloader.git
synced 2026-07-08 01:31:00 +08:00
Update settings page
This commit is contained in:
33
components/SettingsContext.tsx
Normal file
33
components/SettingsContext.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import { Component, ComponentChild, createContext } from "preact";
|
||||
import { StateUpdater } from "preact/hooks";
|
||||
import { ConfigType } from "../config.ts";
|
||||
|
||||
export const SettingsCtx = createContext<State | null>(null);
|
||||
|
||||
type State = {
|
||||
set_settings: StateUpdater<ConfigType | undefined>;
|
||||
set_changed: StateUpdater<Set<string>>;
|
||||
};
|
||||
|
||||
type Props = {
|
||||
children: ComponentChild;
|
||||
set_settings: StateUpdater<ConfigType | undefined>;
|
||||
set_changed: StateUpdater<Set<string>>;
|
||||
};
|
||||
|
||||
export default class SettingsContext extends Component<Props, State> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
set_settings: props.set_settings,
|
||||
set_changed: props.set_changed,
|
||||
};
|
||||
}
|
||||
render() {
|
||||
return (
|
||||
<SettingsCtx.Provider value={this.props}>
|
||||
{this.props.children}
|
||||
</SettingsCtx.Provider>
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user