Files
SCM-Manager/scm-ui/src/permissions/components/PermissionCheckbox.js
2019-01-21 10:17:59 +01:00

48 lines
1.2 KiB
JavaScript

// @flow
import React from "react";
import { translate } from "react-i18next";
import { Checkbox } from "../../../../scm-ui-components/packages/ui-components/src";
type Props = {
permission: string,
checked: boolean,
onChange: (value: boolean, name: string) => void,
disabled: boolean,
t: string => string
};
class PermissionCheckbox extends React.Component<Props> {
render() {
const { t, permission, checked, onChange, disabled } = this.props;
const key = permission.split(":").join(".");
return (
<Checkbox
name={permission}
label={this.translateOrDefault(
"permissions." + key + ".displayName",
key
)}
checked={checked}
onChange={onChange}
disabled={disabled}
helpText={this.translateOrDefault(
"permissions." + key + ".description",
t("permissions.unknown")
)}
/>
);
}
translateOrDefault = (key: string, defaultText: string) => {
const translation = this.props.t(key);
if (translation === key) {
return defaultText;
} else {
return translation;
}
};
}
export default translate("plugins")(PermissionCheckbox);