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) { export function LogChannels({ logChannels, setLogChannels }: Props) {
function addLogChannel() { function addLogChannel(props: Partial<LogChannel> = {}) {
setLogChannels(_logChannels => { setLogChannels(_logChannels => {
return [..._logChannels, { return [..._logChannels, {
id: "", id: "",
includeExclude: "include", includeExclude: "include",
logTypes: new Set(), 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) { function setId(index: number, id: string) {
setLogChannels(_logChannels => { setLogChannels(_logChannels => {
_logChannels[index].id = id; _logChannels[index].id = id;
@ -157,7 +166,8 @@ export function LogChannels({ logChannels, setLogChannels }: Props) {
</div> </div>
</div> </div>
))} ))}
<button onClick={addLogChannel}>Add</button> <button onClick={() => addLogChannel()}>Add</button>
<button onClick={() => addReverseLogChannel()}>Add "everything else"</button>
</div> </div>
); );
} }