@kaspernj/api-maker 1.0.306 → 1.0.308

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  ]
17
17
  },
18
18
  "name": "@kaspernj/api-maker",
19
- "version": "1.0.306",
19
+ "version": "1.0.308",
20
20
  "type": "module",
21
21
  "description": "",
22
22
  "main": "index.js",
@@ -4,9 +4,11 @@ import {memo} from "react"
4
4
 
5
5
  const ApiMakerSuperAdminIndexPage = ({modelClass}) => {
6
6
  return (
7
- <ModelClassTable
8
- modelClass={modelClass}
9
- />
7
+ <div className="super-admin--index-page">
8
+ <ModelClassTable
9
+ modelClass={modelClass}
10
+ />
11
+ </div>
10
12
  )
11
13
  }
12
14
 
@@ -1,10 +1,10 @@
1
- import {digg} from "diggerize"
2
1
  import EditPage from "./edit-page"
3
2
  import IndexPage from "./index-page"
4
3
  import Layout from "./layout"
5
4
  import Link from "../link"
6
5
  import {memo, useMemo} from "react"
7
6
  import * as modelsModule from "@kaspernj/api-maker/src/models.mjs.erb"
7
+ import {useCallback} from "react"
8
8
  import ShowPage from "./show-page"
9
9
  import ShowReflectionPage from "./show-reflection-page"
10
10
  import useQueryParams from "on-location-changed/src/use-query-params"
@@ -15,6 +15,9 @@ const ApiMakerSuperAdmin = () => {
15
15
 
16
16
  if (queryParams.model) modelClass = modelsModule[queryParams.model]
17
17
 
18
+ const modelId = queryParams.model_id
19
+ const modelName = modelClass?.modelClassData()?.name
20
+
18
21
  if (queryParams.model && queryParams.model_id && queryParams.model_reflection) {
19
22
  pageToShow = "show_reflection"
20
23
  } else if (queryParams.model && queryParams.model_id && queryParams.mode == "edit") {
@@ -29,17 +32,40 @@ const ApiMakerSuperAdmin = () => {
29
32
  pageToShow = "welcome"
30
33
  }
31
34
 
35
+ const onDestroyClicked = useCallback(async (e) => {
36
+ e.preventDefault()
37
+
38
+ if (!confirm("Are you sure?")) {
39
+ return
40
+ }
41
+
42
+ try {
43
+ const model = await modelClass.find(modelId)
44
+
45
+ await model.destroy()
46
+
47
+ Params.changeParams({mode: undefined, model_id: undefined})
48
+ } catch (error) {
49
+ FlashMessage.errorResponse(error)
50
+ }
51
+ }, [modelName, modelId])
52
+
32
53
  const actions = useMemo(
33
54
  () => <>
34
55
  {modelClass && pageToShow == "index" &&
35
- <Link className="create-new-model-link" to={Params.withParams({model: modelClass.modelClassData().name, mode: "new"})}>
56
+ <Link className="create-new-model-link" to={Params.withParams({model: modelName, mode: "new"})}>
36
57
  Create new
37
58
  </Link>
38
59
  }
39
60
  {modelClass && pageToShow == "show" &&
40
- <Link to={Params.withParams({model: modelClass.modelClassData().name, model_id: queryParams.model_id, mode: "edit"})}>
41
- Edit
42
- </Link>
61
+ <>
62
+ <Link className="edit-model-link" to={Params.withParams({model: modelName, model_id: modelId, mode: "edit"})}>
63
+ Edit
64
+ </Link>
65
+ <a className="destroy-model-link" href="#" onClick={onDestroyClicked}>
66
+ Delete
67
+ </a>
68
+ </>
43
69
  }
44
70
  </>,
45
71
  [modelClass, pageToShow]
@@ -49,27 +75,27 @@ const ApiMakerSuperAdmin = () => {
49
75
  <Layout actions={actions} active={queryParams.model} headerTitle={modelClass?.modelName()?.human({count: 2})}>
50
76
  {pageToShow == "index" &&
51
77
  <IndexPage
52
- key={`index-page-${digg(modelClass.modelClassData(), "name")}`}
78
+ key={`index-page-${modelName}`}
53
79
  modelClass={modelClass}
54
80
  />
55
81
  }
56
82
  {pageToShow == "show" &&
57
83
  <ShowPage
58
- key={`show-page-${digg(modelClass.modelClassData(), "name")}-${queryParams.modelId}`}
84
+ key={`show-page-${modelName}-${modelId}`}
59
85
  modelClass={modelClass}
60
- modelId={queryParams.modelId}
86
+ modelId={modelId}
61
87
  />
62
88
  }
63
89
  {pageToShow == "show_reflection" &&
64
90
  <ShowReflectionPage
65
- key={`show-reflection-page-${digg(modelClass.modelClassData(), "name")}-${queryParams.modelId}`}
91
+ key={`show-reflection-page-${modelName}-${modelId}`}
66
92
  modelClass={modelClass}
67
- modelId={queryParams.modelId}
93
+ modelId={modelId}
68
94
  />
69
95
  }
70
96
  {pageToShow == "edit" &&
71
97
  <EditPage
72
- key={`edit-page-${digg(modelClass.modelClassData(), "name")}-${queryParams.modelId}`}
98
+ key={`edit-page-${modelName}-${modelId}`}
73
99
  modelClass={modelClass}
74
100
  />
75
101
  }