29 lines
904 B
TypeScript
29 lines
904 B
TypeScript
import * as React from "react";
|
|
import { fetchLabFeatures, LabsFeature } from "./labs_features_list_data";
|
|
import { KeyValShowRow } from "../../controls/key_val_show_row";
|
|
import { GetWebAppConfigValue } from "../../config_storage/actions";
|
|
|
|
interface LabsFeaturesListProps {
|
|
onToggle(feature: LabsFeature): void;
|
|
getConfigValue: GetWebAppConfigValue;
|
|
}
|
|
|
|
export function LabsFeaturesList(props: LabsFeaturesListProps) {
|
|
return <div>
|
|
{fetchLabFeatures(props.getConfigValue).map((p, i) => {
|
|
const displayValue = p.displayInvert ? !p.value : p.value;
|
|
return <KeyValShowRow key={i}
|
|
label={p.name}
|
|
labelPlaceholder=""
|
|
value={p.description}
|
|
toggleValue={displayValue ? 1 : 0}
|
|
valuePlaceholder=""
|
|
onClick={() => {
|
|
props.onToggle(p);
|
|
p.callback && p.callback();
|
|
}}
|
|
disabled={false} />;
|
|
})}
|
|
</div>;
|
|
}
|