{}
@@ -72,63 +70,66 @@ export function HeaderColumn(props: Props) {
}
- onMenuClose={onClose}
placement="bottom-start"
- closeOnSelect
- >
-
handleOrderBy(propertyDetails.ascendingOrderKey, property)}>
-
-
-
-
{propertyDetails.ascendingOrderTitle}
-
-
{propertyDetails.descendingOrderTitle}
-
-
- {selectedMenuItem === `${propertyDetails.ascendingOrderKey}_${property}` &&
}
-
-
-
handleOrderBy(propertyDetails.descendingOrderKey, property)}>
-
-
-
-
{propertyDetails.descendingOrderTitle}
-
-
{propertyDetails.ascendingOrderTitle}
-
-
- {selectedMenuItem === `${propertyDetails.descendingOrderKey}_${property}` && (
-
- )}
-
-
- {selectedMenuItem &&
- selectedMenuItem !== "" &&
- displayFilters?.order_by !== "-created_at" &&
- selectedMenuItem.includes(property) && (
-
handleOrderBy("-created_at", property)}
- >
-
-
- {t("common.actions.clear_sorting")}
-
-
- )}
-
+ title={t("common.order_by.label")}
+ sections={[
+ {
+ key: "sorting",
+ options: [
+ {
+ key: "ascending",
+ title: (
+
+
+
{propertyDetails.ascendingOrderTitle}
+
+
{propertyDetails.descendingOrderTitle}
+
+ ),
+ isChecked: selectedMenuItem === `${propertyDetails.ascendingOrderKey}_${property}`,
+ onClick: () => {
+ handleOrderBy(propertyDetails.ascendingOrderKey, property);
+ onClose();
+ },
+ },
+ {
+ key: "descending",
+ title: (
+
+
+
{propertyDetails.descendingOrderTitle}
+
+
{propertyDetails.ascendingOrderTitle}
+
+ ),
+ isChecked: selectedMenuItem === `${propertyDetails.descendingOrderKey}_${property}`,
+ onClick: () => {
+ handleOrderBy(propertyDetails.descendingOrderKey, property);
+ onClose();
+ },
+ },
+ {
+ key: "clear",
+ title: (
+
+
+ {t("common.actions.clear_sorting")}
+
+ ),
+ isChecked: false,
+ onClick: () => {
+ handleOrderBy("-created_at", property);
+ onClose();
+ },
+ shouldRender:
+ !!selectedMenuItem &&
+ selectedMenuItem !== "" &&
+ displayFilters?.order_by !== "-created_at" &&
+ selectedMenuItem.includes(property),
+ },
+ ],
+ },
+ ]}
+ />
);
}
diff --git a/plane-src/apps/web/core/components/modules/dropdowns/order-by.tsx b/plane-src/apps/web/core/components/modules/dropdowns/order-by.tsx
index b33cf62..5af3e7d 100644
--- a/plane-src/apps/web/core/components/modules/dropdowns/order-by.tsx
+++ b/plane-src/apps/web/core/components/modules/dropdowns/order-by.tsx
@@ -8,10 +8,10 @@ import { ArrowDownWideNarrow, ArrowUpWideNarrow } from "lucide-react";
import { MODULE_ORDER_BY_OPTIONS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { getButtonStyling } from "@plane/propel/button";
-import { CheckIcon, ChevronDownIcon } from "@plane/propel/icons";
+import { ChevronDownIcon } from "@plane/propel/icons";
import type { TModuleOrderByOptions } from "@plane/types";
// ui
-import { CustomMenu } from "@plane/ui";
+import { SortingDropdown } from "@/components/common/sorting-dropdown";
// helpers
import { cn } from "@plane/utils";
// types
@@ -33,8 +33,8 @@ export function ModuleOrderByDropdown(props: Props) {
const isManual = value?.includes("sort_order");
return (
-
{!isDescending ? : }
{orderByDetails && t(orderByDetails?.i18n_label)}
@@ -42,45 +42,44 @@ export function ModuleOrderByDropdown(props: Props) {
}
placement="bottom-end"
- maxHeight="lg"
- closeOnSelect
- >
- {MODULE_ORDER_BY_OPTIONS.map((option) => (
-