From adb93f19e42c778d879a75d209a8c7b9bc22b59c Mon Sep 17 00:00:00 2001
From: "Mahatthana (Kelvin) Nomsawadi" <me@bboykelvin.dev>
Date: Wed, 31 May 2023 18:02:11 +0700
Subject: [PATCH] Fix basic actions aren't showing in the order of CUD (#31184)

---
 frontend/src/metabase/entities/actions/actions.ts | 15 +++++++++------
 .../ModelActionDetails/ModelActionDetails.tsx     |  2 +-
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/frontend/src/metabase/entities/actions/actions.ts b/frontend/src/metabase/entities/actions/actions.ts
index bac60a06118..1b93c859c12 100644
--- a/frontend/src/metabase/entities/actions/actions.ts
+++ b/frontend/src/metabase/entities/actions/actions.ts
@@ -57,11 +57,14 @@ const defaultImplicitActionCreateOptions = {
 const enableImplicitActionsForModel =
   async (modelId: number, options = defaultImplicitActionCreateOptions) =>
   async (dispatch: Dispatch) => {
-    if (options.insert) {
+    // We're ordering actions that's most recently created first.
+    // So if we want to show Create, Update, Delete, then we need
+    // to create them in the reverse order.
+    if (options.delete) {
       await ActionsApi.create({
-        name: t`Create`,
+        name: t`Delete`,
         type: "implicit",
-        kind: "row/create",
+        kind: "row/delete",
         model_id: modelId,
       });
     }
@@ -75,11 +78,11 @@ const enableImplicitActionsForModel =
       });
     }
 
-    if (options.delete) {
+    if (options.insert) {
       await ActionsApi.create({
-        name: t`Delete`,
+        name: t`Create`,
         type: "implicit",
-        kind: "row/delete",
+        kind: "row/create",
         model_id: modelId,
       });
     }
diff --git a/frontend/src/metabase/models/components/ModelDetailPage/ModelActionDetails/ModelActionDetails.tsx b/frontend/src/metabase/models/components/ModelDetailPage/ModelActionDetails/ModelActionDetails.tsx
index 34a1569a0c4..e279a918251 100644
--- a/frontend/src/metabase/models/components/ModelDetailPage/ModelActionDetails/ModelActionDetails.tsx
+++ b/frontend/src/metabase/models/components/ModelDetailPage/ModelActionDetails/ModelActionDetails.tsx
@@ -218,7 +218,7 @@ function NoActionsState({
 
 function mostRecentFirst(action: WritebackAction) {
   const createdAt = parseTimestamp(action["created_at"]);
-  return -createdAt.unix();
+  return -createdAt.valueOf();
 }
 
 // eslint-disable-next-line import/no-default-export -- deprecated usage
-- 
GitLab