feat: handle list panel type options

This commit is contained in:
Yunus M 2025-06-09 11:24:29 +05:30 committed by SagarRajput-7
parent 1e7b2a7734
commit 62ecc44510
4 changed files with 42 additions and 28 deletions

View File

@ -70,6 +70,7 @@ export const QueryBuilderV2 = memo(function QueryBuilderV2({
isAvailableToDisable={false}
queryVariant={config?.queryVariant || 'dropdown'}
showOnlyWhereClause={showOnlyWhereClause}
isListViewPanel={isListViewPanel}
/>
))}
@ -95,7 +96,7 @@ export const QueryBuilderV2 = memo(function QueryBuilderV2({
</div>
)}
{!showOnlyWhereClause && (
{!showOnlyWhereClause && !isListViewPanel && (
<QueryFooter
addNewBuilderQuery={addNewBuilderQuery}
addNewFormula={addNewFormula}
@ -103,7 +104,7 @@ export const QueryBuilderV2 = memo(function QueryBuilderV2({
)}
</div>
{!showOnlyWhereClause && (
{!showOnlyWhereClause && !isListViewPanel && (
<div className="query-names-section">
{currentQuery.builder.queryData.map((query) => (
<div key={query.queryName} className="query-name">

View File

@ -88,6 +88,16 @@ function QueryAddOns({
});
useEffect(() => {
if (isListViewPanel) {
setAddOns([]);
setSelectedViews([
ADD_ONS.find((addOn) => addOn.key === ADD_ONS_KEYS.ORDER_BY) as AddOn,
]);
return;
}
if (panelType === PANEL_TYPES.VALUE) {
// Filter out all add-ons except legend format
setAddOns((prevAddOns) =>
@ -103,7 +113,7 @@ function QueryAddOns({
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [panelType]);
}, [panelType, isListViewPanel]);
const handleOptionClick = (e: RadioChangeEvent): void => {
if (selectedViews.find((view) => view.key === e.target.value.key)) {

View File

@ -104,28 +104,30 @@ export const QueryV2 = memo(function QueryV2({
/>
</div>
<Dropdown
className="query-actions-dropdown"
menu={{
items: [
{
label: 'Clone',
key: 'clone-query',
icon: <Copy size={14} />,
onClick: handleCloneEntity,
},
{
label: 'Delete',
key: 'delete-query',
icon: <Trash size={14} />,
onClick: handleDeleteQuery,
},
],
}}
placement="bottomRight"
>
<Ellipsis size={16} />
</Dropdown>
{!isListViewPanel && (
<Dropdown
className="query-actions-dropdown"
menu={{
items: [
{
label: 'Clone',
key: 'clone-query',
icon: <Copy size={14} />,
onClick: handleCloneEntity,
},
{
label: 'Delete',
key: 'delete-query',
icon: <Trash size={14} />,
onClick: handleDeleteQuery,
},
],
}}
placement="bottomRight"
>
<Ellipsis size={16} />
</Dropdown>
)}
</div>
</div>
)}
@ -150,7 +152,7 @@ export const QueryV2 = memo(function QueryV2({
</div>
</div>
{!showOnlyWhereClause && (
{!showOnlyWhereClause && !isListViewPanel && (
<QueryAggregation
dataSource={dataSource}
panelType={panelType || undefined}
@ -171,7 +173,7 @@ export const QueryV2 = memo(function QueryV2({
index={index}
query={query}
version="v3"
isListViewPanel={false}
isListViewPanel={isListViewPanel}
showReduceTo={showReduceTo}
panelType={panelType}
/>

View File

@ -139,6 +139,7 @@ export default function QBEntityOptions({
)}
{showFunctions &&
!isListViewPanel &&
(isMetricsDataSource || isLogsDataSource) &&
query &&
onQueryFunctionsUpdates && (
@ -161,7 +162,7 @@ export default function QBEntityOptions({
)}
</div>
{showDeleteButton && (
{showDeleteButton && !isListViewPanel && (
<Button className="periscope-btn ghost" onClick={onDelete}>
<Trash2 size={14} />
</Button>