@capytale/meta-player 0.1.3 → 0.1.5

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capytale/meta-player",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite",
@@ -14,12 +14,12 @@
14
14
  "type-check": "tsc --noEmit"
15
15
  },
16
16
  "dependencies": {
17
- "@capytale/activity.js": "^3.0.8",
17
+ "@capytale/activity.js": "^3.1.0",
18
18
  "@capytale/capytale-rich-text-editor": "^0.4.2",
19
19
  "@reduxjs/toolkit": "^2.0.1",
20
20
  "@uidotdev/usehooks": "^2.4.1",
21
21
  "primeicons": "^7.0.0",
22
- "primereact": "^10.6.3",
22
+ "primereact": "^10.8.3",
23
23
  "react": "^18.2.0",
24
24
  "react-dom": "^18.2.0",
25
25
  "react-html-props": "^2.0.9",
@@ -42,7 +42,7 @@
42
42
  "prettier": "^3.2.1",
43
43
  "sass": "^1.75.0",
44
44
  "typescript": "^5.3.3",
45
- "vite": "^5.0.11",
45
+ "vite": "^5.4.6",
46
46
  "vitest": "^1.2.0"
47
47
  }
48
48
  }
@@ -1,4 +1,4 @@
1
- import { memo, useState } from "react";
1
+ import { memo, useMemo, useState } from "react";
2
2
  import styles from "./style.module.scss";
3
3
 
4
4
  import { Button } from "primereact/button";
@@ -9,6 +9,7 @@ import ActivityQuickActions from "./ActivityQuickActions";
9
9
  import useFullscreen from "../../utils/useFullscreen";
10
10
  import { useActivityJS } from "../activityJS/ActivityJSProvider";
11
11
  import { Dialog } from "primereact/dialog";
12
+ import capytaleUI from "@capytale/activity.js/backend/capytale/ui";
12
13
 
13
14
  const ActivityMenu: React.FC = memo(() => {
14
15
  const [settingsSidebarVisible, setSettingsSidebarVisible] = useState(false);
@@ -16,6 +17,7 @@ const ActivityMenu: React.FC = memo(() => {
16
17
  const isFullscreen = useFullscreen(wantFullscreen, () =>
17
18
  setWantFullscreen(false),
18
19
  );
20
+ const isInIframe = useMemo(() => capytaleUI.isInCapytaletIframe(), []);
19
21
  const [helpDialogVisible, setHelpDialogVisible] = useState(false);
20
22
  const activityJS = useActivityJS();
21
23
  return (
@@ -24,27 +26,41 @@ const ActivityMenu: React.FC = memo(() => {
24
26
  <Button
25
27
  severity="secondary"
26
28
  size="small"
27
- icon={isFullscreen ? "pi pi-expand" : "pi pi-expand"}
28
- text
29
- tooltip="Plein écran"
29
+ icon="pi pi-cog" // pi-ellipsis-v
30
+ outlined
31
+ tooltip="Paramètres"
30
32
  tooltipOptions={{
31
- position: "bottom",
33
+ position: "left",
32
34
  showDelay: settings.TOOLTIP_SHOW_DELAY,
33
35
  }}
34
- onClick={() => setWantFullscreen((prev) => !prev)}
36
+ onClick={() => setSettingsSidebarVisible(true)}
35
37
  />
36
38
  <Button
37
39
  severity="secondary"
38
40
  size="small"
39
- icon="pi pi-cog" // pi-ellipsis-v
40
- outlined
41
- tooltip="Paramètres"
41
+ icon={isFullscreen ? "pi pi-expand" : "pi pi-expand"}
42
+ text
43
+ tooltip="Plein écran"
42
44
  tooltipOptions={{
43
- position: "left",
45
+ position: "bottom",
44
46
  showDelay: settings.TOOLTIP_SHOW_DELAY,
45
47
  }}
46
- onClick={() => setSettingsSidebarVisible(true)}
48
+ onClick={() => setWantFullscreen((prev) => !prev)}
47
49
  />
50
+ {isInIframe && (
51
+ <Button
52
+ severity="secondary"
53
+ size="small"
54
+ icon={"pi pi-times"}
55
+ text
56
+ tooltip="Retour à la liste des activités"
57
+ tooltipOptions={{
58
+ position: "left",
59
+ showDelay: settings.TOOLTIP_SHOW_DELAY,
60
+ }}
61
+ onClick={() => capytaleUI.closeCapytaleIframe()}
62
+ />
63
+ )}
48
64
  <Sidebar
49
65
  header="Paramètres"
50
66
  visible={settingsSidebarVisible}
@@ -22,6 +22,7 @@ import {
22
22
  import { copyToClipboard } from "../../utils/clipboard";
23
23
  import settings from "../../settings";
24
24
  import { wf } from "@capytale/activity.js/activity/field/workflow";
25
+ import capytaleUI from "@capytale/activity.js/backend/capytale/ui";
25
26
  import ButtonDoubleIcon from "../../utils/ButtonDoubleIcon";
26
27
  import CardSelector from "../../utils/CardSelector";
27
28
 
@@ -42,6 +43,7 @@ const CapytaleMenu: React.FC = () => {
42
43
  () => windowsSize.width && windowsSize.width < ML,
43
44
  [windowsSize.width],
44
45
  );
46
+ const isInIframe = useMemo(() => capytaleUI.isInCapytaletIframe(), []);
45
47
  const toast = useRef<Toast>(null);
46
48
  const changeWorkflow = (value: wf) => {
47
49
  dispatch(setWorkflow(value));
@@ -64,6 +66,20 @@ const CapytaleMenu: React.FC = () => {
64
66
  <>
65
67
  <Toast ref={toast} position="bottom-right" />
66
68
  <div className={styles.capytaleMenu}>
69
+ {isInIframe && (
70
+ <Button
71
+ label="Retour"
72
+ icon="pi pi-chevron-left"
73
+ size="small"
74
+ outlined
75
+ onClick={() => capytaleUI.closeCapytaleIframe()}
76
+ tooltip="Retour à la liste des activités"
77
+ tooltipOptions={{
78
+ position: "right",
79
+ showDelay: settings.TOOLTIP_SHOW_DELAY,
80
+ }}
81
+ />
82
+ )}
67
83
  {showSaveButton && (
68
84
  <Button
69
85
  label={isQuiteSmall ? undefined : "Enregistrer"}
@@ -174,7 +190,9 @@ const CapytaleMenu: React.FC = () => {
174
190
  rightIcon="pi pi-angle-down"
175
191
  />
176
192
  <OverlayPanel ref={overlayPanelWorkflow}>
177
- <h3 className={styles.overlayPanelWorkflowTitle}>État de la copie</h3>
193
+ <h3 className={styles.overlayPanelWorkflowTitle}>
194
+ État de la copie
195
+ </h3>
178
196
  <CardSelector
179
197
  selected={workflow}
180
198
  onChange={(option: wf) => {
@@ -7,6 +7,7 @@ import styles from "./style.module.scss";
7
7
  import { useMemo } from "react";
8
8
  import { useAppSelector } from "../../app/hooks";
9
9
  import { selectReturnUrl } from "../activityData/activityDataSlice";
10
+ import capytaleUI from "@capytale/activity.js/backend/capytale/ui";
10
11
 
11
12
  const Navbar: React.FC = () => {
12
13
  const returnUrl = useAppSelector(selectReturnUrl);
@@ -15,12 +16,13 @@ const Navbar: React.FC = () => {
15
16
  () => windowsSize.width && windowsSize.width < MD,
16
17
  [windowsSize.width],
17
18
  );
19
+ const isInIframe = useMemo(() => capytaleUI.isInCapytaletIframe(), []);
18
20
  const logoText = isSmall ? "C" : "CAPYTALE";
19
21
  return (
20
22
  <div className={styles.navbar}>
21
23
  <div className={styles.navbarContainer}>
22
24
  <div className={styles.navbarLogo}>
23
- <a href={returnUrl}>{logoText}</a>
25
+ {!isInIframe && <a href={returnUrl}>{logoText}</a>}
24
26
  </div>
25
27
  <CapytaleMenu />
26
28
  <ActivityInfo />