1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
import { isArray } from "lodash";
import React, { FunctionComponent, useContext } from "react";
import {
useEnabledLanguages,
useLanguageProfiles,
useLanguages,
} from "../../@redux/hooks";
import {
Check,
CollapseBox,
Group,
Input,
Message,
SettingsProvider,
useLatest,
} from "../components";
import { enabledLanguageKey, languageProfileKey } from "../keys";
import { LanguageSelector, ProfileSelector } from "./components";
import Table from "./table";
const EnabledLanguageContext = React.createContext<readonly Language.Info[]>(
[]
);
const LanguagesProfileContext = React.createContext<
readonly Language.Profile[]
>([]);
export function useEnabledLanguagesContext() {
const list = useContext(EnabledLanguageContext);
const latest = useLatest<Language.Info[]>(enabledLanguageKey, isArray);
if (latest) {
return latest;
} else {
return list;
}
}
export function useProfilesContext() {
const list = useContext(LanguagesProfileContext);
const latest = useLatest<Language.Profile[]>(languageProfileKey, isArray);
if (latest) {
return latest;
} else {
return list;
}
}
interface Props {}
const SettingsLanguagesView: FunctionComponent<Props> = () => {
const languages = useLanguages();
const enabled = useEnabledLanguages();
const profiles = useLanguageProfiles();
return (
<SettingsProvider title="Languages - Bazarr (Settings)">
<EnabledLanguageContext.Provider value={enabled}>
<LanguagesProfileContext.Provider value={profiles ?? []}>
<Group header="Subtitles Language">
<Input>
<Check
label="Single Language"
settingKey="settings-general-single_language"
></Check>
<Message>
Download a single Subtitles file without adding the language
code to the filename.
</Message>
<Message type="warning">
We don't recommend enabling this option unless absolutely
required (ie: media player not supporting language code in
subtitles filename). Results may vary.
</Message>
</Input>
<Input name="Languages Filter">
<LanguageSelector
settingKey={enabledLanguageKey}
options={languages}
></LanguageSelector>
</Input>
</Group>
<Group header="Languages Profiles">
<Table></Table>
</Group>
<Group header="Default Settings">
<CollapseBox>
<CollapseBox.Control>
<Input>
<Check
label="Series"
settingKey="settings-general-serie_default_enabled"
></Check>
<Message>
Apply only to Series added to Bazarr after enabling this
option.
</Message>
</Input>
</CollapseBox.Control>
<CollapseBox.Content indent>
<Input name="Profile">
<ProfileSelector settingKey="settings-general-serie_default_profile"></ProfileSelector>
</Input>
</CollapseBox.Content>
</CollapseBox>
<CollapseBox>
<CollapseBox.Control>
<Input>
<Check
label="Movies"
settingKey="settings-general-movie_default_enabled"
></Check>
<Message>
Apply only to Movies added to Bazarr after enabling this
option.
</Message>
</Input>
</CollapseBox.Control>
<CollapseBox.Content>
<Input name="Profile">
<ProfileSelector settingKey="settings-general-movie_default_profile"></ProfileSelector>
</Input>
</CollapseBox.Content>
</CollapseBox>
</Group>
</LanguagesProfileContext.Provider>
</EnabledLanguageContext.Provider>
</SettingsProvider>
);
};
export default SettingsLanguagesView;
|