From 5efc470d06f171962797e9eeb8ea5da1e8f78305 Mon Sep 17 00:00:00 2001 From: Roman Vyakhirev Date: Mon, 5 Dec 2022 16:58:02 +0100 Subject: [PATCH] feat(datagrid-web): add refresh time setting, bump version, add changelog record --- packages/pluggableWidgets/datagrid-web/CHANGELOG.md | 4 ++++ packages/pluggableWidgets/datagrid-web/src/Datagrid.tsx | 8 ++++++++ packages/pluggableWidgets/datagrid-web/src/Datagrid.xml | 4 ++++ .../datagrid-web/typings/DatagridProps.d.ts | 2 ++ 4 files changed, 18 insertions(+) diff --git a/packages/pluggableWidgets/datagrid-web/CHANGELOG.md b/packages/pluggableWidgets/datagrid-web/CHANGELOG.md index 274d6b9edf..7198f44af6 100644 --- a/packages/pluggableWidgets/datagrid-web/CHANGELOG.md +++ b/packages/pluggableWidgets/datagrid-web/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Added + +- We added _Refresh time_ setting to Datagrid, this allows automatic data refresh. + ### Changed - We improved structure preview of the widget in Studio Pro 9.20 and above. diff --git a/packages/pluggableWidgets/datagrid-web/src/Datagrid.tsx b/packages/pluggableWidgets/datagrid-web/src/Datagrid.tsx index ac07d8d184..26b91ff89b 100644 --- a/packages/pluggableWidgets/datagrid-web/src/Datagrid.tsx +++ b/packages/pluggableWidgets/datagrid-web/src/Datagrid.tsx @@ -42,6 +42,14 @@ export default function Datagrid(props: DatagridContainerProps): ReactElement { } }, [props.datasource, props.configurationAttribute, filtered]); + useEffect(() => { + if (props.refreshInterval > 0) { + setTimeout(() => { + props.datasource.reload(); + }, props.refreshInterval * 1000); + } + }, [props.datasource, props.refreshInterval]); + const setPage = useCallback( computePage => { const newPage = computePage(currentPage); diff --git a/packages/pluggableWidgets/datagrid-web/src/Datagrid.xml b/packages/pluggableWidgets/datagrid-web/src/Datagrid.xml index 563a998497..993c8d8092 100644 --- a/packages/pluggableWidgets/datagrid-web/src/Datagrid.xml +++ b/packages/pluggableWidgets/datagrid-web/src/Datagrid.xml @@ -16,6 +16,10 @@ Data source + + Refresh time (in seconds) + + diff --git a/packages/pluggableWidgets/datagrid-web/typings/DatagridProps.d.ts b/packages/pluggableWidgets/datagrid-web/typings/DatagridProps.d.ts index c53a88e989..43cc9e1976 100644 --- a/packages/pluggableWidgets/datagrid-web/typings/DatagridProps.d.ts +++ b/packages/pluggableWidgets/datagrid-web/typings/DatagridProps.d.ts @@ -74,6 +74,7 @@ export interface DatagridContainerProps { tabIndex?: number; advanced: boolean; datasource: ListValue; + refreshInterval: number; columns: ColumnsType[]; columnsFilterable: boolean; pageSize: number; @@ -105,6 +106,7 @@ export interface DatagridPreviewProps { readOnly: boolean; advanced: boolean; datasource: {} | { type: string } | null; + refreshInterval: number | null; columns: ColumnsPreviewType[]; columnsFilterable: boolean; pageSize: number | null;