@contember/interface 1.3.0-alpha.17 → 1.3.0-alpha.20
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/dist/development/components/binding/DisconnectEntityTrigger.cjs +52 -0
- package/dist/development/components/binding/DisconnectEntityTrigger.cjs.map +1 -0
- package/dist/development/components/binding/DisconnectEntityTrigger.js +52 -0
- package/dist/development/components/binding/DisconnectEntityTrigger.js.map +1 -0
- package/dist/development/index.cjs +7 -2
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +4 -2
- package/dist/development/index.js.map +1 -1
- package/dist/production/components/binding/DisconnectEntityTrigger.cjs +44 -0
- package/dist/production/components/binding/DisconnectEntityTrigger.cjs.map +1 -0
- package/dist/production/components/binding/DisconnectEntityTrigger.js +44 -0
- package/dist/production/components/binding/DisconnectEntityTrigger.js.map +1 -0
- package/dist/production/index.cjs +7 -2
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +4 -2
- package/dist/production/index.js.map +1 -1
- package/dist/types/bootstrap/index.d.ts +0 -1
- package/dist/types/bootstrap/index.d.ts.map +1 -1
- package/dist/types/components/binding/DisconnectEntityTrigger.d.ts +11 -0
- package/dist/types/components/binding/DisconnectEntityTrigger.d.ts.map +1 -0
- package/dist/types/components/binding/index.d.ts +1 -0
- package/dist/types/components/binding/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/bootstrap/index.ts +0 -1
- package/src/components/binding/DisconnectEntityTrigger.tsx +53 -0
- package/src/components/binding/index.ts +1 -0
- package/src/index.ts +3 -0
- package/dist/development/bootstrap/runReactApp.cjs +0 -11
- package/dist/development/bootstrap/runReactApp.cjs.map +0 -1
- package/dist/development/bootstrap/runReactApp.js +0 -11
- package/dist/development/bootstrap/runReactApp.js.map +0 -1
- package/dist/production/bootstrap/runReactApp.cjs +0 -11
- package/dist/production/bootstrap/runReactApp.cjs.map +0 -1
- package/dist/production/bootstrap/runReactApp.js +0 -11
- package/dist/production/bootstrap/runReactApp.js.map +0 -1
- package/dist/types/bootstrap/runReactApp.d.ts +0 -5
- package/dist/types/bootstrap/runReactApp.d.ts.map +0 -1
- package/src/bootstrap/runReactApp.tsx +0 -16
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/interface",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "1.3.0-alpha.
|
|
4
|
+
"version": "1.3.0-alpha.20",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"main": "./dist/production/index.js",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"test": "vitest"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@contember/react-binding": "1.3.0-alpha.
|
|
39
|
-
"@contember/react-client": "1.3.0-alpha.
|
|
40
|
-
"@contember/react-dataview": "1.3.0-alpha.
|
|
41
|
-
"@contember/react-devbar": "1.3.0-alpha.
|
|
42
|
-
"@contember/react-identity": "1.3.0-alpha.
|
|
43
|
-
"@contember/react-routing": "1.3.0-alpha.
|
|
44
|
-
"@contember/utilities": "1.3.0-alpha.
|
|
38
|
+
"@contember/react-binding": "1.3.0-alpha.20",
|
|
39
|
+
"@contember/react-client": "1.3.0-alpha.20",
|
|
40
|
+
"@contember/react-dataview": "1.3.0-alpha.20",
|
|
41
|
+
"@contember/react-devbar": "1.3.0-alpha.20",
|
|
42
|
+
"@contember/react-identity": "1.3.0-alpha.20",
|
|
43
|
+
"@contember/react-routing": "1.3.0-alpha.20",
|
|
44
|
+
"@contember/utilities": "1.3.0-alpha.20",
|
|
45
45
|
"@radix-ui/react-slot": "^1.0.2"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
package/src/bootstrap/index.ts
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ComponentType, ReactNode, useCallback } from 'react'
|
|
2
|
+
import { Slot } from '@radix-ui/react-slot'
|
|
3
|
+
import { BindingError, EntityListAccessor, ErrorPersistResult, SuccessfulPersistResult, SugaredRelativeSingleEntity, useEntity, useMutationState, usePersist } from '@contember/react-binding'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
const SlotButton = Slot as ComponentType<React.ButtonHTMLAttributes<HTMLButtonElement>>
|
|
7
|
+
|
|
8
|
+
export interface DisconnectEntityTriggerProps {
|
|
9
|
+
immediatePersist?: true
|
|
10
|
+
children: ReactNode
|
|
11
|
+
onPersistSuccess?: (result: SuccessfulPersistResult) => void
|
|
12
|
+
onPersistError?: (result: ErrorPersistResult) => void
|
|
13
|
+
field?: SugaredRelativeSingleEntity['field']
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const DisconnectEntityTrigger = ({ immediatePersist, onPersistError, onPersistSuccess, field, ...props }: DisconnectEntityTriggerProps) => {
|
|
17
|
+
const entity = useEntity()
|
|
18
|
+
const triggerPersist = usePersist()
|
|
19
|
+
const isMutating = useMutationState()
|
|
20
|
+
const onClick = useCallback(() => {
|
|
21
|
+
if (field) {
|
|
22
|
+
entity.disconnectEntityAtField({ field })
|
|
23
|
+
} else {
|
|
24
|
+
const parent = entity.getParent()
|
|
25
|
+
if (!parent) {
|
|
26
|
+
throw new BindingError('Cannot disconnect root entity')
|
|
27
|
+
}
|
|
28
|
+
if (parent instanceof EntityListAccessor) {
|
|
29
|
+
parent.disconnectEntity(entity)
|
|
30
|
+
} else {
|
|
31
|
+
const subTreeNode = entity.environment.getSubTreeNode()
|
|
32
|
+
if (subTreeNode.type !== 'entity') {
|
|
33
|
+
throw new BindingError('Cannot disconnect root entity')
|
|
34
|
+
}
|
|
35
|
+
parent.disconnectEntityAtField({ field: subTreeNode.field.name })
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (immediatePersist) {
|
|
40
|
+
triggerPersist()
|
|
41
|
+
.then(onPersistSuccess)
|
|
42
|
+
.catch(onPersistError)
|
|
43
|
+
}
|
|
44
|
+
}, [field, immediatePersist, entity, triggerPersist, onPersistSuccess, onPersistError])
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<SlotButton
|
|
48
|
+
onClick={onClick}
|
|
49
|
+
disabled={isMutating ? true : undefined}
|
|
50
|
+
{...props}
|
|
51
|
+
/>
|
|
52
|
+
)
|
|
53
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const reactDevbar = require("@contember/react-devbar");
|
|
4
|
-
const client = require("react-dom/client");
|
|
5
|
-
const runReactApp = (reactElement, { domRoot } = {}) => {
|
|
6
|
-
const rootEl = domRoot ?? document.body.appendChild(document.createElement("div"));
|
|
7
|
-
const errorHandler = reactDevbar.createErrorHandler((dom, react, onRecoverableError) => client.createRoot(dom, { onRecoverableError }).render(react));
|
|
8
|
-
errorHandler((onRecoverableError) => client.createRoot(rootEl, { onRecoverableError }).render(reactElement));
|
|
9
|
-
};
|
|
10
|
-
exports.runReactApp = runReactApp;
|
|
11
|
-
//# sourceMappingURL=runReactApp.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runReactApp.cjs","sources":["../../../src/bootstrap/runReactApp.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { createErrorHandler } from '@contember/react-devbar'\nimport { createRoot } from 'react-dom/client'\n\nexport const runReactApp = (\n\treactElement: ReactElement,\n\t{ domRoot }: {\n\t\tdomRoot?: HTMLElement,\n\t} = {},\n) => {\n\tconst rootEl = domRoot ?? document.body.appendChild(document.createElement('div'))\n\n\tconst errorHandler = createErrorHandler((dom, react, onRecoverableError) => createRoot(dom, { onRecoverableError }).render(react))\n\n\terrorHandler(onRecoverableError => createRoot(rootEl, { onRecoverableError }).render(reactElement))\n}\n"],"names":["createErrorHandler","createRoot"],"mappings":";;;;AAIO,MAAM,cAAc,CAC1B,cACA,EAAE,QAAQ,IAEN,CAAA,MACA;AACE,QAAA,SAAS,WAAW,SAAS,KAAK,YAAY,SAAS,cAAc,KAAK,CAAC;AAEjF,QAAM,eAAeA,YAAA,mBAAmB,CAAC,KAAK,OAAO,uBAAuBC,OAAAA,WAAW,KAAK,EAAE,mBAAoB,CAAA,EAAE,OAAO,KAAK,CAAC;AAEpH,eAAA,CAAA,uBAAsBA,OAAAA,WAAW,QAAQ,EAAE,oBAAoB,EAAE,OAAO,YAAY,CAAC;AACnG;;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { createErrorHandler } from "@contember/react-devbar";
|
|
2
|
-
import { createRoot } from "react-dom/client";
|
|
3
|
-
const runReactApp = (reactElement, { domRoot } = {}) => {
|
|
4
|
-
const rootEl = domRoot ?? document.body.appendChild(document.createElement("div"));
|
|
5
|
-
const errorHandler = createErrorHandler((dom, react, onRecoverableError) => createRoot(dom, { onRecoverableError }).render(react));
|
|
6
|
-
errorHandler((onRecoverableError) => createRoot(rootEl, { onRecoverableError }).render(reactElement));
|
|
7
|
-
};
|
|
8
|
-
export {
|
|
9
|
-
runReactApp
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=runReactApp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runReactApp.js","sources":["../../../src/bootstrap/runReactApp.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { createErrorHandler } from '@contember/react-devbar'\nimport { createRoot } from 'react-dom/client'\n\nexport const runReactApp = (\n\treactElement: ReactElement,\n\t{ domRoot }: {\n\t\tdomRoot?: HTMLElement,\n\t} = {},\n) => {\n\tconst rootEl = domRoot ?? document.body.appendChild(document.createElement('div'))\n\n\tconst errorHandler = createErrorHandler((dom, react, onRecoverableError) => createRoot(dom, { onRecoverableError }).render(react))\n\n\terrorHandler(onRecoverableError => createRoot(rootEl, { onRecoverableError }).render(reactElement))\n}\n"],"names":[],"mappings":";;AAIO,MAAM,cAAc,CAC1B,cACA,EAAE,QAAQ,IAEN,CAAA,MACA;AACE,QAAA,SAAS,WAAW,SAAS,KAAK,YAAY,SAAS,cAAc,KAAK,CAAC;AAEjF,QAAM,eAAe,mBAAmB,CAAC,KAAK,OAAO,uBAAuB,WAAW,KAAK,EAAE,mBAAoB,CAAA,EAAE,OAAO,KAAK,CAAC;AAEpH,eAAA,CAAA,uBAAsB,WAAW,QAAQ,EAAE,oBAAoB,EAAE,OAAO,YAAY,CAAC;AACnG;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const reactDevbar = require("@contember/react-devbar");
|
|
4
|
-
const client = require("react-dom/client");
|
|
5
|
-
const runReactApp = (reactElement, { domRoot } = {}) => {
|
|
6
|
-
const rootEl = domRoot ?? document.body.appendChild(document.createElement("div"));
|
|
7
|
-
const errorHandler = reactDevbar.createErrorHandler((dom, react, onRecoverableError) => client.createRoot(dom, { onRecoverableError }).render(react));
|
|
8
|
-
errorHandler((onRecoverableError) => client.createRoot(rootEl, { onRecoverableError }).render(reactElement));
|
|
9
|
-
};
|
|
10
|
-
exports.runReactApp = runReactApp;
|
|
11
|
-
//# sourceMappingURL=runReactApp.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runReactApp.cjs","sources":["../../../src/bootstrap/runReactApp.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { createErrorHandler } from '@contember/react-devbar'\nimport { createRoot } from 'react-dom/client'\n\nexport const runReactApp = (\n\treactElement: ReactElement,\n\t{ domRoot }: {\n\t\tdomRoot?: HTMLElement,\n\t} = {},\n) => {\n\tconst rootEl = domRoot ?? document.body.appendChild(document.createElement('div'))\n\n\tconst errorHandler = createErrorHandler((dom, react, onRecoverableError) => createRoot(dom, { onRecoverableError }).render(react))\n\n\terrorHandler(onRecoverableError => createRoot(rootEl, { onRecoverableError }).render(reactElement))\n}\n"],"names":["createErrorHandler","createRoot"],"mappings":";;;;AAIO,MAAM,cAAc,CAC1B,cACA,EAAE,QAAQ,IAEN,CAAA,MACA;AACE,QAAA,SAAS,WAAW,SAAS,KAAK,YAAY,SAAS,cAAc,KAAK,CAAC;AAEjF,QAAM,eAAeA,YAAA,mBAAmB,CAAC,KAAK,OAAO,uBAAuBC,OAAAA,WAAW,KAAK,EAAE,mBAAoB,CAAA,EAAE,OAAO,KAAK,CAAC;AAEpH,eAAA,CAAA,uBAAsBA,OAAAA,WAAW,QAAQ,EAAE,oBAAoB,EAAE,OAAO,YAAY,CAAC;AACnG;;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { createErrorHandler } from "@contember/react-devbar";
|
|
2
|
-
import { createRoot } from "react-dom/client";
|
|
3
|
-
const runReactApp = (reactElement, { domRoot } = {}) => {
|
|
4
|
-
const rootEl = domRoot ?? document.body.appendChild(document.createElement("div"));
|
|
5
|
-
const errorHandler = createErrorHandler((dom, react, onRecoverableError) => createRoot(dom, { onRecoverableError }).render(react));
|
|
6
|
-
errorHandler((onRecoverableError) => createRoot(rootEl, { onRecoverableError }).render(reactElement));
|
|
7
|
-
};
|
|
8
|
-
export {
|
|
9
|
-
runReactApp
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=runReactApp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runReactApp.js","sources":["../../../src/bootstrap/runReactApp.tsx"],"sourcesContent":["import { ReactElement } from 'react'\nimport { createErrorHandler } from '@contember/react-devbar'\nimport { createRoot } from 'react-dom/client'\n\nexport const runReactApp = (\n\treactElement: ReactElement,\n\t{ domRoot }: {\n\t\tdomRoot?: HTMLElement,\n\t} = {},\n) => {\n\tconst rootEl = domRoot ?? document.body.appendChild(document.createElement('div'))\n\n\tconst errorHandler = createErrorHandler((dom, react, onRecoverableError) => createRoot(dom, { onRecoverableError }).render(react))\n\n\terrorHandler(onRecoverableError => createRoot(rootEl, { onRecoverableError }).render(reactElement))\n}\n"],"names":[],"mappings":";;AAIO,MAAM,cAAc,CAC1B,cACA,EAAE,QAAQ,IAEN,CAAA,MACA;AACE,QAAA,SAAS,WAAW,SAAS,KAAK,YAAY,SAAS,cAAc,KAAK,CAAC;AAEjF,QAAM,eAAe,mBAAmB,CAAC,KAAK,OAAO,uBAAuB,WAAW,KAAK,EAAE,mBAAoB,CAAA,EAAE,OAAO,KAAK,CAAC;AAEpH,eAAA,CAAA,uBAAsB,WAAW,QAAQ,EAAE,oBAAoB,EAAE,OAAO,YAAY,CAAC;AACnG;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runReactApp.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/runReactApp.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAIpC,eAAO,MAAM,WAAW,iBACT,YAAY;;UAU1B,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ReactElement } from 'react'
|
|
2
|
-
import { createErrorHandler } from '@contember/react-devbar'
|
|
3
|
-
import { createRoot } from 'react-dom/client'
|
|
4
|
-
|
|
5
|
-
export const runReactApp = (
|
|
6
|
-
reactElement: ReactElement,
|
|
7
|
-
{ domRoot }: {
|
|
8
|
-
domRoot?: HTMLElement,
|
|
9
|
-
} = {},
|
|
10
|
-
) => {
|
|
11
|
-
const rootEl = domRoot ?? document.body.appendChild(document.createElement('div'))
|
|
12
|
-
|
|
13
|
-
const errorHandler = createErrorHandler((dom, react, onRecoverableError) => createRoot(dom, { onRecoverableError }).render(react))
|
|
14
|
-
|
|
15
|
-
errorHandler(onRecoverableError => createRoot(rootEl, { onRecoverableError }).render(reactElement))
|
|
16
|
-
}
|