@equinor/fusion-framework-react-components-bookmark 2.0.2 → 2.0.4-next.0
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/CHANGELOG.md +25 -0
- package/README.md +1 -1
- package/dist/esm/components/edit-bookmark/AppNameField.js +10 -0
- package/dist/esm/components/edit-bookmark/AppNameField.js.map +1 -0
- package/dist/esm/components/edit-bookmark/EditBookmarkModal.js +6 -2
- package/dist/esm/components/edit-bookmark/EditBookmarkModal.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/components/edit-bookmark/AppNameField.d.ts +11 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +10 -8
- package/src/__tests__/AppNameField.test.tsx +39 -0
- package/src/components/edit-bookmark/AppNameField.tsx +27 -0
- package/src/components/edit-bookmark/EditBookmarkModal.tsx +13 -4
- package/src/version.ts +1 -1
- package/tsconfig.json +1 -1
- package/vitest.config.ts +10 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 2.0.4-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e8aae1f: Internal: publish every package on the `next` pre-release tag so the whole framework can be installed as a coherent set.
|
|
8
|
+
|
|
9
|
+
Packages without their own changes are bumped only to receive a `-next.N` version and the `next` dist-tag on npm. Install with:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm add @equinor/fusion-framework-react-app@next
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [e8aae1f]
|
|
16
|
+
- Updated dependencies [2836e0b]
|
|
17
|
+
- Updated dependencies [2836e0b]
|
|
18
|
+
- @equinor/fusion-framework-react@9.0.0-next.0
|
|
19
|
+
- @equinor/fusion-framework-react-module-bookmark@7.0.0-next.0
|
|
20
|
+
- @equinor/fusion-observable@9.1.2-next.0
|
|
21
|
+
|
|
22
|
+
## 2.0.3
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- efad984: Show accessible loading feedback for the app name while the edit bookmark modal resolves its app manifest.
|
|
27
|
+
|
|
3
28
|
## 2.0.2
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ The provider manages modal state for creating, editing, and importing bookmarks.
|
|
|
59
59
|
- **Filtering** — text search across bookmark names
|
|
60
60
|
- **Grouping** — group bookmarks by app, creator, or other criteria
|
|
61
61
|
- **Create modal** — form for creating new bookmarks
|
|
62
|
-
- **Edit modal** — form for updating existing bookmarks
|
|
62
|
+
- **Edit modal** — form for updating existing bookmarks with loading feedback while resolving the source app name
|
|
63
63
|
- **Import modal** — import bookmarks shared via URL
|
|
64
64
|
- **Clipboard sharing** — copy bookmark URL to clipboard
|
|
65
65
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Input, Progress } from '@equinor/eds-core-react';
|
|
3
|
+
/**
|
|
4
|
+
* Renders the bookmark's app name while making manifest resolution visible.
|
|
5
|
+
*
|
|
6
|
+
* @param props - The resolved display name and whether the manifest request is pending.
|
|
7
|
+
* @returns A read-only app name field with an accessible loading indicator when needed.
|
|
8
|
+
*/
|
|
9
|
+
export const AppNameField = ({ id, displayName, isLoading, }) => (_jsx(Input, { id: id, readOnly: true, value: displayName ?? '', "aria-busy": isLoading, rightAdornments: isLoading ? _jsx(Progress.Circular, { "aria-label": "Loading app name", size: 16 }) : undefined }));
|
|
10
|
+
//# sourceMappingURL=AppNameField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppNameField.js","sourceRoot":"","sources":["../../../../src/components/edit-bookmark/AppNameField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,EAAE,EACF,WAAW,EACX,SAAS,GAKV,EAAE,EAAE,CAAC,CACJ,KAAC,KAAK,IACJ,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,WAAW,IAAI,EAAE,eACb,SAAS,EACpB,eAAe,EACb,SAAS,CAAC,CAAC,CAAC,KAAC,QAAQ,CAAC,QAAQ,kBAAY,kBAAkB,EAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,SAAS,GAEvF,CACH,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { useFrameworkModule } from '@equinor/fusion-framework-react';
|
|
|
6
6
|
import { Button, Checkbox, Dialog, Input, Label, Textarea } from '@equinor/eds-core-react';
|
|
7
7
|
import styled from 'styled-components';
|
|
8
8
|
import { useBookmarkComponentContext } from '../BookmarkProvider';
|
|
9
|
+
import { AppNameField } from './AppNameField';
|
|
9
10
|
const Styled = {
|
|
10
11
|
Dialog: styled(Dialog) `
|
|
11
12
|
width: 500px;
|
|
@@ -42,6 +43,7 @@ export const EditBookmarkModal = ({ isOpen, onClose, bookmarkId, }) => {
|
|
|
42
43
|
});
|
|
43
44
|
const nameId = useId();
|
|
44
45
|
const descriptionId = useId();
|
|
46
|
+
const appId = useId();
|
|
45
47
|
const [updatePayload, setUpdatePayload] = useState(false);
|
|
46
48
|
const bookmark$ = useMemo(() => from(provider ? provider.getBookmark(bookmarkId) : EMPTY), [provider, bookmarkId]);
|
|
47
49
|
const { value: bookmark } = useObservableState(bookmark$);
|
|
@@ -55,7 +57,9 @@ export const EditBookmarkModal = ({ isOpen, onClose, bookmarkId, }) => {
|
|
|
55
57
|
}, [bookmark]);
|
|
56
58
|
// TODO(#5091): this should be on the bookmark object
|
|
57
59
|
const appProvider = useFrameworkModule('app');
|
|
58
|
-
const { value: appName } = useObservableState(useMemo(() => (bookmark && appProvider ? appProvider.getAppManifest(bookmark.appKey) : of(undefined)), [appProvider, bookmark]));
|
|
60
|
+
const { value: appName, error: appNameError } = useObservableState(useMemo(() => (bookmark && appProvider ? appProvider.getAppManifest(bookmark.appKey) : of(undefined)), [appProvider, bookmark]));
|
|
61
|
+
// Only report a pending manifest request; missing providers and failed requests are not loading.
|
|
62
|
+
const isAppNameLoading = Boolean(bookmark && appProvider && appName === undefined && appNameError === null);
|
|
59
63
|
const updateBookmark = useCallback(async (updates) => {
|
|
60
64
|
// Cannot update a bookmark without a provider to persist the change
|
|
61
65
|
if (!provider) {
|
|
@@ -83,7 +87,7 @@ export const EditBookmarkModal = ({ isOpen, onClose, bookmarkId, }) => {
|
|
|
83
87
|
setState((s) => ({ ...s, name: event.target.value }));
|
|
84
88
|
} })] }), _jsx("div", { children: _jsx(Textarea, { id: descriptionId, label: "Description", value: state?.description, rows: 3, rowsMax: 10, onChange: (event) => {
|
|
85
89
|
setState((s) => ({ ...s, description: event.target.value }));
|
|
86
|
-
} }) }), _jsxs("div", { children: [_jsx(Label, { htmlFor:
|
|
90
|
+
} }) }), _jsxs("div", { children: [_jsx(Label, { htmlFor: appId, label: "App" }), _jsx(AppNameField, { id: appId, displayName: appName?.displayName, isLoading: isAppNameLoading })] }), _jsxs(Styled.CheckboxWrapper, { children: [_jsx(Checkbox, { label: "Is Shared", checked: state.isShared, onChange: (changeEvent) => {
|
|
87
91
|
const isShared = changeEvent.target.checked;
|
|
88
92
|
// Copy the bookmark URL when the user shares it so it's easy to send along
|
|
89
93
|
if (isShared) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditBookmarkModal.js","sourceRoot":"","sources":["../../../../src/components/edit-bookmark/EditBookmarkModal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAoB,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAIrE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"EditBookmarkModal.js","sourceRoot":"","sources":["../../../../src/components/edit-bookmark/EditBookmarkModal.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC"}
|