react-cheminfo 0.52.0 → 0.54.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/README.md +65 -31
- package/lib/i18n/core/chromeCatalog.d.ts +1 -1
- package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
- package/lib/i18n/core/index.d.ts +2 -0
- package/lib/i18n/core/index.d.ts.map +1 -1
- package/lib/i18n/core/index.js +1 -0
- package/lib/i18n/core/index.js.map +1 -1
- package/lib/i18n/core/messageCatalog.d.ts +10 -0
- package/lib/i18n/core/messageCatalog.d.ts.map +1 -1
- package/lib/i18n/core/messageCatalog.js +12 -0
- package/lib/i18n/core/messageCatalog.js.map +1 -1
- package/lib/i18n/core/translate.d.ts +35 -0
- package/lib/i18n/core/translate.d.ts.map +1 -0
- package/lib/i18n/core/translate.js +27 -0
- package/lib/i18n/core/translate.js.map +1 -0
- package/lib/i18n/ui/useT.d.ts +2 -12
- package/lib/i18n/ui/useT.d.ts.map +1 -1
- package/lib/i18n/ui/useT.js +2 -8
- package/lib/i18n/ui/useT.js.map +1 -1
- package/lib/i18n/vite/index.d.ts +3 -0
- package/lib/i18n/vite/index.d.ts.map +1 -0
- package/lib/i18n/vite/index.js +2 -0
- package/lib/i18n/vite/index.js.map +1 -0
- package/lib/i18n/vite/localeCatalog.d.ts +70 -0
- package/lib/i18n/vite/localeCatalog.d.ts.map +1 -0
- package/lib/i18n/vite/localeCatalog.js +80 -0
- package/lib/i18n/vite/localeCatalog.js.map +1 -0
- package/lib/language/ui/siteLanguageContext.d.ts.map +1 -1
- package/lib/language/ui/siteLanguageContext.js +2 -1
- package/lib/language/ui/siteLanguageContext.js.map +1 -1
- package/lib/locales/de.json +5 -0
- package/lib/locales/en.json +5 -0
- package/lib/locales/es.json +5 -0
- package/lib/locales/fr.json +5 -0
- package/lib/locales/it.json +5 -0
- package/lib/router/core/history.d.ts +4 -3
- package/lib/router/core/history.d.ts.map +1 -1
- package/lib/router/core/history.js +9 -13
- package/lib/router/core/history.js.map +1 -1
- package/lib/router/core/index.d.ts +2 -0
- package/lib/router/core/index.d.ts.map +1 -1
- package/lib/router/core/index.js +1 -0
- package/lib/router/core/index.js.map +1 -1
- package/lib/router/core/pageAddress.d.ts +61 -0
- package/lib/router/core/pageAddress.d.ts.map +1 -0
- package/lib/router/core/pageAddress.js +69 -0
- package/lib/router/core/pageAddress.js.map +1 -0
- package/lib/share/core/index.d.ts +4 -0
- package/lib/share/core/index.d.ts.map +1 -1
- package/lib/share/core/index.js +2 -0
- package/lib/share/core/index.js.map +1 -1
- package/lib/share/core/preferences.d.ts +2 -2
- package/lib/share/core/preferences.d.ts.map +1 -1
- package/lib/share/core/preferences.js +8 -3
- package/lib/share/core/preferences.js.map +1 -1
- package/lib/share/core/seal.d.ts +42 -0
- package/lib/share/core/seal.d.ts.map +1 -0
- package/lib/share/core/seal.js +185 -0
- package/lib/share/core/seal.js.map +1 -0
- package/lib/share/core/sealedAddress.d.ts +31 -0
- package/lib/share/core/sealedAddress.d.ts.map +1 -0
- package/lib/share/core/sealedAddress.js +38 -0
- package/lib/share/core/sealedAddress.js.map +1 -0
- package/lib/share/ui/SealedLinkRefused.d.ts +17 -0
- package/lib/share/ui/SealedLinkRefused.d.ts.map +1 -0
- package/lib/share/ui/SealedLinkRefused.js +23 -0
- package/lib/share/ui/SealedLinkRefused.js.map +1 -0
- package/lib/share/ui/ShareConfigOptions.d.ts +12 -1
- package/lib/share/ui/ShareConfigOptions.d.ts.map +1 -1
- package/lib/share/ui/ShareConfigOptions.js +4 -3
- package/lib/share/ui/ShareConfigOptions.js.map +1 -1
- package/lib/share/ui/ShareDialogContent.d.ts.map +1 -1
- package/lib/share/ui/ShareDialogContent.js +20 -6
- package/lib/share/ui/ShareDialogContent.js.map +1 -1
- package/lib/share/ui/ShareLinkBar.d.ts +5 -0
- package/lib/share/ui/ShareLinkBar.d.ts.map +1 -1
- package/lib/share/ui/ShareLinkBar.js +4 -4
- package/lib/share/ui/ShareLinkBar.js.map +1 -1
- package/lib/share/ui/index.d.ts +2 -0
- package/lib/share/ui/index.d.ts.map +1 -1
- package/lib/share/ui/index.js +1 -0
- package/lib/share/ui/index.js.map +1 -1
- package/lib/share/ui/useSealedUrl.d.ts +17 -0
- package/lib/share/ui/useSealedUrl.d.ts.map +1 -0
- package/lib/share/ui/useSealedUrl.js +31 -0
- package/lib/share/ui/useSealedUrl.js.map +1 -0
- package/lib/vite.d.ts +1 -0
- package/lib/vite.d.ts.map +1 -1
- package/lib/vite.js +1 -0
- package/lib/vite.js.map +1 -1
- package/package.json +1 -1
- package/src/i18n/core/index.ts +2 -0
- package/src/i18n/core/messageCatalog.ts +13 -0
- package/src/i18n/core/translate.ts +51 -0
- package/src/i18n/ui/useT.ts +6 -29
- package/src/i18n/vite/index.ts +5 -0
- package/src/i18n/vite/localeCatalog.ts +121 -0
- package/src/language/ui/siteLanguageContext.ts +2 -1
- package/src/locales/de.json +5 -0
- package/src/locales/en.json +5 -0
- package/src/locales/es.json +5 -0
- package/src/locales/fr.json +5 -0
- package/src/locales/it.json +5 -0
- package/src/router/core/history.ts +9 -15
- package/src/router/core/index.ts +8 -0
- package/src/router/core/pageAddress.ts +110 -0
- package/src/share/core/index.ts +10 -0
- package/src/share/core/preferences.ts +10 -10
- package/src/share/core/seal.ts +233 -0
- package/src/share/core/sealedAddress.ts +48 -0
- package/src/share/ui/SealedLinkRefused.tsx +43 -0
- package/src/share/ui/ShareConfigOptions.tsx +23 -1
- package/src/share/ui/ShareDialogContent.tsx +37 -6
- package/src/share/ui/ShareLinkBar.tsx +9 -1
- package/src/share/ui/index.ts +2 -0
- package/src/share/ui/useSealedUrl.ts +40 -0
- package/src/vite.ts +1 -0
|
@@ -15,6 +15,11 @@ export interface ShareLinkBarProps {
|
|
|
15
15
|
* @default undefined
|
|
16
16
|
*/
|
|
17
17
|
onCopied?: () => void;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the link is not ready to hand out yet, as while it is being sealed.
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
disabled?: boolean;
|
|
18
23
|
}
|
|
19
24
|
|
|
20
25
|
/**
|
|
@@ -31,7 +36,7 @@ export interface ShareLinkBarProps {
|
|
|
31
36
|
* @returns The bar.
|
|
32
37
|
*/
|
|
33
38
|
export function ShareLinkBar(props: ShareLinkBarProps): ReactElement {
|
|
34
|
-
const { url, frame, onCopied } = props;
|
|
39
|
+
const { url, frame, onCopied, disabled = false } = props;
|
|
35
40
|
const t = useChromeT();
|
|
36
41
|
|
|
37
42
|
return (
|
|
@@ -46,6 +51,7 @@ export function ShareLinkBar(props: ShareLinkBarProps): ReactElement {
|
|
|
46
51
|
content={url}
|
|
47
52
|
label={t('share.copyLink')}
|
|
48
53
|
title=""
|
|
54
|
+
disabled={disabled}
|
|
49
55
|
onCopied={onCopied}
|
|
50
56
|
/>
|
|
51
57
|
</HelpTooltip>
|
|
@@ -59,6 +65,7 @@ export function ShareLinkBar(props: ShareLinkBarProps): ReactElement {
|
|
|
59
65
|
icon="share"
|
|
60
66
|
text={t('share.openInNewTab')}
|
|
61
67
|
href={url}
|
|
68
|
+
disabled={disabled}
|
|
62
69
|
target="_blank"
|
|
63
70
|
rel="noopener noreferrer"
|
|
64
71
|
/>
|
|
@@ -74,6 +81,7 @@ export function ShareLinkBar(props: ShareLinkBarProps): ReactElement {
|
|
|
74
81
|
icon="code"
|
|
75
82
|
label={t('share.copyIframe')}
|
|
76
83
|
title=""
|
|
84
|
+
disabled={disabled}
|
|
77
85
|
onCopied={onCopied}
|
|
78
86
|
/>
|
|
79
87
|
</HelpTooltip>
|
package/src/share/ui/index.ts
CHANGED
|
@@ -3,6 +3,8 @@ export { HiddenPartsProvider } from './HiddenPartsProvider.tsx';
|
|
|
3
3
|
export { useIsHidden } from './hiddenParts.ts';
|
|
4
4
|
export type { PagePartProps } from './PagePart.tsx';
|
|
5
5
|
export { PagePart } from './PagePart.tsx';
|
|
6
|
+
export type { SealedLinkRefusedProps } from './SealedLinkRefused.tsx';
|
|
7
|
+
export { SealedLinkRefused } from './SealedLinkRefused.tsx';
|
|
6
8
|
export type { ShareButtonProps, ShareButtonVariant } from './ShareButton.tsx';
|
|
7
9
|
export { ShareButton } from './ShareButton.tsx';
|
|
8
10
|
export type { ShareDialogProps } from './ShareDialog.tsx';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import { sealShareUrl } from '../core/index.ts';
|
|
4
|
+
|
|
5
|
+
/** The link the dialog hands out, and whether it may be handed out yet. */
|
|
6
|
+
export interface SealedUrl {
|
|
7
|
+
/** The link: sealed when asked and ready, else the share link itself. */
|
|
8
|
+
link: string;
|
|
9
|
+
/** False while the link is being sealed, when only the plain one exists. */
|
|
10
|
+
ready: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The link the dialog hands out: the share link itself, or its sealed form.
|
|
15
|
+
* Sealing is asynchronous, so a sealed link is not ready at once, and a link
|
|
16
|
+
* sealed for an older draft is never answered for the current one.
|
|
17
|
+
* @param url - The share link.
|
|
18
|
+
* @param sealed - Whether to hand out its sealed form.
|
|
19
|
+
* @returns The link, and whether it is ready.
|
|
20
|
+
*/
|
|
21
|
+
export function useSealedUrl(url: string, sealed: boolean): SealedUrl {
|
|
22
|
+
const [result, setResult] = useState<{ from: string; to: string } | null>(
|
|
23
|
+
null,
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!sealed) return;
|
|
28
|
+
let current = true;
|
|
29
|
+
void sealShareUrl(url).then((to) => {
|
|
30
|
+
if (current) setResult({ from: url, to });
|
|
31
|
+
});
|
|
32
|
+
return () => {
|
|
33
|
+
current = false;
|
|
34
|
+
};
|
|
35
|
+
}, [url, sealed]);
|
|
36
|
+
|
|
37
|
+
if (!sealed) return { link: url, ready: true };
|
|
38
|
+
if (result?.from === url) return { link: result.to, ready: true };
|
|
39
|
+
return { link: url, ready: false };
|
|
40
|
+
}
|
package/src/vite.ts
CHANGED