(local.ref = e)}
- className="c-w-screen c-h-screen c-bg-transparent c-flex c-flex-row c-items-center c-justify-center"
+ className="c-w-screen c-h-screen relative c-bg-transparent c-flex c-flex-row c-items-center c-justify-center"
onClick={(e) => {
if (local.ref) {
if (e.target === local.ref) {
diff --git a/exports.tsx b/exports.tsx
index d4824bd..052d8c4 100755
--- a/exports.tsx
+++ b/exports.tsx
@@ -1,5 +1,6 @@
export { FieldLoading } from "@/comps/ui/field-loading";
import { lazify, lazifyMany } from "@/utils/lazify";
+export { Popover } from "./comps/custom/Popover";
/** Master - Detail - List - Form */
export const MasterDetail = lazify(
@@ -80,7 +81,7 @@ export { FormatValue } from "@/utils/format-value";
export { GetValue } from "@/utils/get-value";
export { password } from "@/utils/password";
export { prasi_events, call_prasi_events } from "lib/utils/prasi-events";
-
+export { getFilter } from "@/comps/filter/utils/get-filter";
/** Session */
export { Login } from "@/preset/login/Login";
export { generateLogin } from "@/preset/login/utils/generate";
diff --git a/preset/menu/Menu.tsx b/preset/menu/Menu.tsx
index bb6f8df..49ab522 100755
--- a/preset/menu/Menu.tsx
+++ b/preset/menu/Menu.tsx
@@ -1,7 +1,7 @@
import { getPathname } from "lib/utils/pathname";
import { useLocal } from "lib/utils/use-local";
import get from "lodash.get";
-import { FC, useEffect } from "react";
+import { FC, useEffect, useRef } from "react";
import { IMenu, MenuProp } from "./utils/type-menu";
// import { icon } from "../../..";
@@ -22,7 +22,7 @@ export const Menu: FC
= (props) => {
let role = props.role;
role = props.on_init();
let menu = get(imenu, role) || [];
-
+ const ref = useRef(null);
const local = useLocal({ ...local_default });
if (local.pathname !== getPathname()) {
@@ -39,7 +39,10 @@ export const Menu: FC = (props) => {
}, [props.mode]);
return (
-
+
= (prop) => {
const { value, gen_fields, name, tree_depth, mode } = prop;
if (gen_fields) {
@@ -54,7 +54,14 @@ export const FormatValue: FC<{
} catch (ex: any) {
return "-";
}
- } else if (mode === "timeago") {
+ } else if (mode === "date") {
+ if (!value || isEmptyString(value)) return "-";
+ try {
+ return formatDate(dayjs(value), "DD MMMM YYYY");
+ } catch (ex: any) {
+ return "-";
+ }
+ }else if (mode === "timeago") {
if (!value || isEmptyString(value)) return "-";
try {
return timeAgo(dayjs(value));