feat: add option to disable rendering of html in sql lab and table chart (#27969)

Co-authored-by: Sonia <sonia.gautam@agoda.com>
This commit is contained in:
soniagtm
2024-04-12 01:46:34 +07:00
committed by GitHub
parent 7e679d56ea
commit 4f363e1180
8 changed files with 44 additions and 2 deletions

View File

@@ -237,6 +237,7 @@ export default function TableChart<D extends DataRecord = DataRecord>(
sticky = true, // whether to use sticky header
columnColorFormatters,
allowRearrangeColumns = false,
allowRenderHtml = true,
onContextMenu,
emitCrossFilters,
} = props;
@@ -469,7 +470,7 @@ export default function TableChart<D extends DataRecord = DataRecord>(
accessor: ((datum: D) => datum[key]) as never,
Cell: ({ value, row }: { value: DataRecordValue; row: Row<D> }) => {
const [isHtml, text] = formatColumnValue(column, value);
const html = isHtml ? { __html: text } : undefined;
const html = isHtml && allowRenderHtml ? { __html: text } : undefined;
let backgroundColor;
if (hasColumnColorFormatters) {

View File

@@ -451,6 +451,18 @@ const config: ControlPanelConfig = {
},
},
],
[
{
name: 'allow_render_html',
config: {
type: 'CheckboxControl',
label: t('Render columns in HTML format'),
renderTrigger: true,
default: true,
description: t('Render data in HTML format if applicable.'),
},
},
],
[
{
name: 'column_config',

View File

@@ -238,6 +238,7 @@ const transformProps = (
show_totals: showTotals,
conditional_formatting: conditionalFormatting,
allow_rearrange_columns: allowRearrangeColumns,
allow_render_html: allowRenderHtml,
} = formData;
const timeGrain = extractTimegrain(formData);
@@ -291,6 +292,7 @@ const transformProps = (
columnColorFormatters,
timeGrain,
allowRearrangeColumns,
allowRenderHtml,
onContextMenu,
};
};

View File

@@ -130,6 +130,7 @@ export interface TableChartTransformedProps<D extends DataRecord = DataRecord> {
onChangeFilter?: ChartProps['hooks']['onAddFilter'];
columnColorFormatters?: ColorFormatters;
allowRearrangeColumns?: boolean;
allowRenderHtml?: boolean;
onContextMenu?: (
clientX: number,
clientY: number,