presetup: add 'add everything else' log channel button

This commit is contained in:
Dragory 2021-01-20 22:44:11 +02:00
parent 53436033e2
commit 635156d2f5
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1

View file

@ -85,12 +85,13 @@ interface Props {
}
export function LogChannels({ logChannels, setLogChannels }: Props) {
function addLogChannel() {
function addLogChannel(props: Partial<LogChannel> = {}) {
setLogChannels(_logChannels => {
return [..._logChannels, {
id: "",
includeExclude: "include",
logTypes: new Set(),
...props,
}];
});
}
@ -103,6 +104,14 @@ export function LogChannels({ logChannels, setLogChannels }: Props) {
});
}
function addReverseLogChannel() {
const includedLogTypesInOtherLogChannels = new Set(logChannels.map(l => Array.from(l.logTypes)).flat());
addLogChannel({
includeExclude: "exclude",
logTypes: includedLogTypesInOtherLogChannels,
});
}
function setId(index: number, id: string) {
setLogChannels(_logChannels => {
_logChannels[index].id = id;
@ -157,7 +166,8 @@ export function LogChannels({ logChannels, setLogChannels }: Props) {
</div>
</div>
))}
<button onClick={addLogChannel}>Add</button>
<button onClick={() => addLogChannel()}>Add</button>
<button onClick={() => addReverseLogChannel()}>Add "everything else"</button>
</div>
);
}