add debounce to log filters

This commit is contained in:
Julia Gru
2023-03-02 17:04:33 +01:00
parent 5d3a91ec71
commit 9b7383de05
2 changed files with 11 additions and 7 deletions

View File

@@ -88,7 +88,7 @@ export class UmbLogViewerWorkspaceContext {
#intervalID: number | null = null;
#currentPage = 1;
currentPage = 1;
constructor(host: UmbControllerHostInterface) {
this.#host = host;
@@ -136,11 +136,11 @@ export class UmbLogViewerWorkspaceContext {
}
setCurrentPage(page: number) {
this.#currentPage = page;
this.currentPage = page;
}
async getLogs() {
const skip = (this.#currentPage - 1) * 100;
getLogs = async () => {
const skip = (this.currentPage - 1) * 100;
const take = 100;
const options = {
@@ -157,7 +157,7 @@ export class UmbLogViewerWorkspaceContext {
if (data) {
this.#logs.next(data);
}
}
};
setFilterExpression(query: string) {
this.#filterExpression.next(query);

View File

@@ -18,6 +18,7 @@ import {
UUIScrollContainerElement,
UUISymbolExpandElement,
} from '@umbraco-ui/uui';
import _ from 'lodash';
@customElement('umb-log-viewer-search-view')
export class UmbLogViewerSearchViewElement extends UmbLitElement {
@@ -377,13 +378,16 @@ export class UmbLogViewerSearchViewElement extends UmbLitElement {
}
#setLogLevel() {
if (!this.#logViewerContext) return;
const logLevels = Array.from(this._logLevelSelectorCheckboxes)
.filter((checkbox) => checkbox.checked)
.map((checkbox) => checkbox.value as LogLevelModel);
this.#logViewerContext?.setLogLevels(logLevels);
this.#logViewerContext?.getLogs();
this.#logViewerContext.getLogs();
}
setLogLevelDebounce = _.debounce(this.#setLogLevel, 300);
#selectAllLogLevels() {
this._logLevelSelectorCheckboxes.forEach((checkbox) => (checkbox.checked = true));
this.#setLogLevel();
@@ -396,7 +400,7 @@ export class UmbLogViewerSearchViewElement extends UmbLitElement {
#renderLogLevelSelector() {
return html`
<div slot="dropdown" id="log-level-selector" @change=${this.#setLogLevel}>
<div slot="dropdown" id="log-level-selector" @change=${this.setLogLevelDebounce}>
${Object.values(LogLevelModel).map(
(logLevel) =>
html`<uui-checkbox class="log-level-menu-item" .value=${logLevel} label="${logLevel}"