1
Fork 0

Add storage and UI for anonymizing only the logged in user.

This commit is contained in:
Bauke 2023-08-16 15:45:27 +02:00
parent 0153c83afb
commit 9bd35ee17e
Signed by: Bauke
GPG Key ID: C1C0F29952BCF558
3 changed files with 25 additions and 0 deletions

View File

@ -37,6 +37,17 @@ export class AnonymizeUsernamesSetting extends Component<SettingProps, State> {
this.setState({data}); this.setState({data});
}; };
selfOnlyClicked = async () => {
const {data} = this.state;
if (data === undefined) {
return;
}
data.value.selfOnly = !data.value.selfOnly;
await data.save();
this.setState({data});
};
render() { render() {
const {data} = this.state; const {data} = this.state;
if (data === undefined) { if (data === undefined) {
@ -52,6 +63,17 @@ export class AnonymizeUsernamesSetting extends Component<SettingProps, State> {
</option> </option>
)); ));
const selfOnlyCheckbox = (
<label>
<input
type="checkbox"
checked={data.value.selfOnly}
onClick={this.selfOnlyClicked}
></input>
Only hide own username
</label>
);
return ( return (
<Setting {...this.props}> <Setting {...this.props}>
<p class="info"> <p class="info">
@ -67,6 +89,7 @@ export class AnonymizeUsernamesSetting extends Component<SettingProps, State> {
{replacementTypeOptions} {replacementTypeOptions}
</select> </select>
</li> </li>
<li>{selfOnlyCheckbox}</li>
</ul> </ul>
</Setting> </Setting>
); );

View File

@ -20,4 +20,5 @@ export function isReplacementType(input: string): input is ReplacementType {
*/ */
export type AnonymizeUsernamesData = { export type AnonymizeUsernamesData = {
replacementType: ReplacementType; replacementType: ReplacementType;
selfOnly: boolean;
}; };

View File

@ -84,6 +84,7 @@ export const storageValues = {
key: Feature.AnonymizeUsernames, key: Feature.AnonymizeUsernames,
value: { value: {
replacementType: ReplacementType.Numerical, replacementType: ReplacementType.Numerical,
selfOnly: false,
}, },
storage: browser.storage.sync, storage: browser.storage.sync,
}), }),