slice-machine-ui 1.19.2-dev-next-release.2 → 1.19.2-dev-next-release.4
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/components/Navigation/ChangesListItem.tsx +0 -4
- package/components/Navigation/VideoItem.tsx +82 -76
- package/components/Navigation/index.test.tsx +2 -13
- package/components/Simulator/components/IframeRenderer/index.tsx +0 -3
- package/components/Simulator/components/Toolbar/index.tsx +0 -42
- package/components/Simulator/index.tsx +0 -2
- package/lib/builders/SliceBuilder/SimulatorButton/index.tsx +5 -20
- package/lib/consts.ts +0 -7
- package/lib/models/common/Screenshots.ts +1 -10
- package/out/404.html +1 -1
- package/out/_next/static/4sLbpIu3gX8jUmr0j0Shc/_buildManifest.js +1 -0
- package/out/_next/static/chunks/585-f3dca093db4b3792.js +10 -0
- package/out/_next/static/chunks/{80-4cd4c6f95d162ef7.js → 80-c513d12da6156fb7.js} +1 -1
- package/out/_next/static/chunks/{840-4e395e66a2b2f394.js → 840-c317c8ff8de0f202.js} +1 -1
- package/out/_next/static/chunks/{904-b2d5235c13e62ee8.js → 904-d5dfccdb4d9ab010.js} +1 -1
- package/out/_next/static/chunks/pages/{_app-ec1f14f2d3ddb69d.js → _app-ee40681cde62eb80.js} +3 -3
- package/out/_next/static/chunks/pages/{changelog-11c9e241f5a8a4cb.js → changelog-75b0bf58d1f3045d.js} +1 -1
- package/out/_next/static/chunks/pages/{changes-768c9cb6fef169d1.js → changes-9dcb1cdaa8b10560.js} +1 -1
- package/out/_next/static/chunks/pages/{labs-395232bcec99d42a.js → labs-2349c21fbac1bd23.js} +1 -1
- package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-5e441f8b049cf91b.js +1 -0
- package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-c9b5ff7076d2b19b.js +1 -0
- package/out/_next/static/chunks/pages/{slices-f77df402117379c6.js → slices-247c480530e98426.js} +1 -1
- package/out/changelog.html +1 -1
- package/out/changes.html +1 -1
- package/out/custom-types/[customTypeId].html +1 -1
- package/out/custom-types.html +1 -1
- package/out/index.html +1 -1
- package/out/labs.html +1 -1
- package/out/page-types/[pageTypeId].html +1 -1
- package/out/prismic-academy-101.png +0 -0
- package/out/slices/[lib]/[sliceName]/[variation]/simulator.html +1 -1
- package/out/slices/[lib]/[sliceName]/[variation].html +1 -1
- package/out/slices.html +1 -1
- package/package.json +4 -4
- package/public/prismic-academy-101.png +0 -0
- package/src/apiClient.ts +1 -40
- package/src/components/HoverCard/HoverCard.stories.tsx +1 -1
- package/src/hooks/useMarketingContent.ts +65 -0
- package/src/modules/loading/types.ts +0 -1
- package/src/modules/screenshots/actions.ts +4 -25
- package/src/modules/screenshots/sagas.ts +1 -63
- package/src/modules/selectedSlice/actions.ts +1 -5
- package/src/modules/selectedSlice/reducer.ts +1 -5
- package/src/modules/slices/index.ts +1 -6
- package/src/modules/toaster/index.tsx +6 -22
- package/src/modules/useSliceMachineActions.ts +2 -25
- package/components/ScreenshotToaster/index.tsx +0 -53
- package/out/_next/static/DcicAqW9Z1wJ8X-Tue3N3/_buildManifest.js +0 -1
- package/out/_next/static/chunks/746-2ca4784811bde7c1.js +0 -8
- package/out/_next/static/chunks/770-c75d8245a822c5d9.js +0 -3
- package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/screenshot-76d40513025fd76d.js +0 -1
- package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-39efc79412072ae1.js +0 -1
- package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-4dfda949290eb037.js +0 -1
- package/out/phil.png +0 -0
- package/out/slices/[lib]/[sliceName]/[variation]/screenshot.html +0 -1
- package/pages/slices/[lib]/[sliceName]/[variation]/screenshot.tsx +0 -61
- package/public/phil.png +0 -0
- package/test/src/modules/screenshots/__fixtures__/mocks.json +0 -41
- package/test/src/modules/screenshots/__fixtures__/model.json +0 -35
- package/test/src/modules/screenshots/__testutils__/getSelectedSliceDummyData.ts +0 -29
- package/test/src/modules/screenshots/sagas.test.ts +0 -82
- /package/out/_next/static/{DcicAqW9Z1wJ8X-Tue3N3 → 4sLbpIu3gX8jUmr0j0Shc}/_ssgManifest.js +0 -0
|
@@ -18,7 +18,6 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
userHasSeenChangesToolTip,
|
|
20
20
|
userHasSeenSimulatorToolTip,
|
|
21
|
-
userHasSeenTutorialsToolTip,
|
|
22
21
|
} from "@src/modules/userContext";
|
|
23
22
|
import useSliceMachineActions from "@src/modules/useSliceMachineActions";
|
|
24
23
|
import { ChangesRightElement } from "./ChangesRightElement";
|
|
@@ -68,13 +67,11 @@ const useOpenChangesHoverCard = () => {
|
|
|
68
67
|
const {
|
|
69
68
|
hasSeenChangesToolTip,
|
|
70
69
|
hasSeenSimulatorToolTip,
|
|
71
|
-
hasSeenTutorialsToolTip,
|
|
72
70
|
isSavingCustomType,
|
|
73
71
|
isSavingSlice,
|
|
74
72
|
} = useSelector((store: SliceMachineStoreType) => ({
|
|
75
73
|
hasSeenChangesToolTip: userHasSeenChangesToolTip(store),
|
|
76
74
|
hasSeenSimulatorToolTip: userHasSeenSimulatorToolTip(store),
|
|
77
|
-
hasSeenTutorialsToolTip: userHasSeenTutorialsToolTip(store),
|
|
78
75
|
isSavingCustomType: isLoading(store, LoadingKeysEnum.SAVE_CUSTOM_TYPE),
|
|
79
76
|
isSavingSlice: isLoading(store, LoadingKeysEnum.SAVE_SLICE),
|
|
80
77
|
}));
|
|
@@ -88,7 +85,6 @@ const useOpenChangesHoverCard = () => {
|
|
|
88
85
|
|
|
89
86
|
return (
|
|
90
87
|
!hasSeenChangesToolTip &&
|
|
91
|
-
hasSeenTutorialsToolTip &&
|
|
92
88
|
hasSeenSimulatorToolTip &&
|
|
93
89
|
!isSaving &&
|
|
94
90
|
prevIsSaving
|
|
@@ -5,11 +5,12 @@ import {
|
|
|
5
5
|
RefCallback,
|
|
6
6
|
ReactNode,
|
|
7
7
|
forwardRef,
|
|
8
|
+
PropsWithChildren,
|
|
8
9
|
} from "react";
|
|
10
|
+
import { useSelector } from "react-redux";
|
|
9
11
|
import ReactTooltip from "react-tooltip";
|
|
10
12
|
import { Close, Flex, Paragraph } from "theme-ui";
|
|
11
13
|
import { ReactTooltipPortal } from "@components/ReactTooltipPortal";
|
|
12
|
-
import { VIDEO_YOUTUBE_PLAYLIST_LINK, PRISMIC_ACADEMY_URL } from "@lib/consts";
|
|
13
14
|
import { telemetry } from "@src/apiClient";
|
|
14
15
|
import { SideNavLink, SideNavListItem } from "@src/components/SideNav";
|
|
15
16
|
import { PlayCircleIcon } from "@src/icons/PlayCircleIcon";
|
|
@@ -20,7 +21,9 @@ import {
|
|
|
20
21
|
HoverCardMedia,
|
|
21
22
|
HoverCardTitle,
|
|
22
23
|
} from "@src/components/HoverCard";
|
|
23
|
-
import {
|
|
24
|
+
import { getUserReview } from "@src/modules/userContext";
|
|
25
|
+
import { SliceMachineStoreType } from "@src/redux/type";
|
|
26
|
+
import { useMarketingContent } from "@src/hooks/useMarketingContent";
|
|
24
27
|
|
|
25
28
|
import style from "./VideoItem.module.css";
|
|
26
29
|
|
|
@@ -31,27 +34,23 @@ type VideoItemProps = {
|
|
|
31
34
|
|
|
32
35
|
export const VideoItem = forwardRef<HTMLLIElement, VideoItemProps>(
|
|
33
36
|
({ onClose, hasSeenTutorialsToolTip }, ref) => {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
const isNext = adapterName === "@slicemachine/adapter-next";
|
|
37
|
-
const videoUrl = isNext ? PRISMIC_ACADEMY_URL : VIDEO_YOUTUBE_PLAYLIST_LINK;
|
|
37
|
+
const { tutorial } = useMarketingContent();
|
|
38
38
|
|
|
39
39
|
return (
|
|
40
40
|
<MaybeVideoTooltipWrapper
|
|
41
41
|
onClose={onClose}
|
|
42
|
-
isNext={isNext}
|
|
43
42
|
hasSeenTutorialsToolTip={hasSeenTutorialsToolTip}
|
|
44
43
|
>
|
|
45
44
|
<SideNavListItem ref={ref}>
|
|
46
45
|
<SideNavLink
|
|
47
|
-
title=
|
|
48
|
-
href={
|
|
46
|
+
title={tutorial.link.title}
|
|
47
|
+
href={tutorial.link.url}
|
|
49
48
|
target="_blank"
|
|
50
49
|
Icon={(props) => <PlayCircleIcon {...props} />}
|
|
51
50
|
onClick={() => {
|
|
52
51
|
void telemetry.track({
|
|
53
52
|
event: "open-video-tutorials",
|
|
54
|
-
video:
|
|
53
|
+
video: tutorial.link.url,
|
|
55
54
|
});
|
|
56
55
|
onClose();
|
|
57
56
|
}}
|
|
@@ -63,20 +62,26 @@ export const VideoItem = forwardRef<HTMLLIElement, VideoItemProps>(
|
|
|
63
62
|
);
|
|
64
63
|
|
|
65
64
|
type MaybeVideoTooltipWrapperProps = VideoItemProps & {
|
|
66
|
-
isNext: boolean;
|
|
67
65
|
children: ReactNode;
|
|
68
66
|
};
|
|
69
67
|
|
|
70
68
|
const MaybeVideoTooltipWrapper: FC<MaybeVideoTooltipWrapperProps> = ({
|
|
71
|
-
isNext,
|
|
72
69
|
children,
|
|
73
70
|
onClose,
|
|
74
71
|
hasSeenTutorialsToolTip,
|
|
75
72
|
}) => {
|
|
76
|
-
|
|
73
|
+
const { tutorial } = useMarketingContent();
|
|
74
|
+
const { userReview } = useSelector((store: SliceMachineStoreType) => ({
|
|
75
|
+
userReview: getUserReview(store),
|
|
76
|
+
}));
|
|
77
|
+
const open =
|
|
78
|
+
!hasSeenTutorialsToolTip &&
|
|
79
|
+
(userReview.onboarding || userReview.advancedRepository);
|
|
80
|
+
|
|
81
|
+
if (tutorial.tooltip.video !== undefined) {
|
|
77
82
|
return (
|
|
78
83
|
<HoverCard
|
|
79
|
-
open={
|
|
84
|
+
open={open}
|
|
80
85
|
side="right"
|
|
81
86
|
onClose={onClose}
|
|
82
87
|
trigger={children}
|
|
@@ -84,40 +89,37 @@ const MaybeVideoTooltipWrapper: FC<MaybeVideoTooltipWrapperProps> = ({
|
|
|
84
89
|
align="end"
|
|
85
90
|
alignOffset={8}
|
|
86
91
|
>
|
|
87
|
-
<HoverCardTitle>
|
|
92
|
+
<HoverCardTitle>{tutorial.tooltip.title}</HoverCardTitle>
|
|
88
93
|
<HoverCardMedia
|
|
89
94
|
component="video"
|
|
90
|
-
cloudName=
|
|
91
|
-
publicId=
|
|
92
|
-
poster=
|
|
95
|
+
cloudName={tutorial.tooltip.video.cloudName}
|
|
96
|
+
publicId={tutorial.tooltip.video.publicId}
|
|
97
|
+
poster={tutorial.tooltip.video.poster}
|
|
93
98
|
controls
|
|
94
99
|
/>
|
|
95
100
|
<HoverCardDescription>
|
|
96
|
-
|
|
97
|
-
Prismic.
|
|
101
|
+
{tutorial.tooltip.description}
|
|
98
102
|
</HoverCardDescription>
|
|
99
|
-
<HoverCardCloseButton>
|
|
103
|
+
<HoverCardCloseButton>
|
|
104
|
+
{tutorial.tooltip.closeButton}
|
|
105
|
+
</HoverCardCloseButton>
|
|
100
106
|
</HoverCard>
|
|
101
107
|
);
|
|
102
108
|
}
|
|
103
109
|
|
|
104
110
|
return (
|
|
105
|
-
<OldVideoItem
|
|
106
|
-
onClose={onClose}
|
|
107
|
-
hasSeenTutorialsToolTip={hasSeenTutorialsToolTip}
|
|
108
|
-
>
|
|
111
|
+
<OldVideoItem onClose={onClose} open={open}>
|
|
109
112
|
{children}
|
|
110
113
|
</OldVideoItem>
|
|
111
114
|
);
|
|
112
115
|
};
|
|
113
116
|
|
|
114
|
-
type OldVideoItemProps =
|
|
117
|
+
type OldVideoItemProps = PropsWithChildren<{
|
|
118
|
+
open: boolean;
|
|
119
|
+
onClose: () => void;
|
|
120
|
+
}>;
|
|
115
121
|
|
|
116
|
-
const OldVideoItem: FC<OldVideoItemProps> = ({
|
|
117
|
-
hasSeenTutorialsToolTip,
|
|
118
|
-
onClose,
|
|
119
|
-
children,
|
|
120
|
-
}) => {
|
|
122
|
+
const OldVideoItem: FC<OldVideoItemProps> = ({ open, onClose, children }) => {
|
|
121
123
|
const id = "video-tool-tip";
|
|
122
124
|
const ref = useRef<HTMLDivElement | null>(null);
|
|
123
125
|
|
|
@@ -126,12 +128,12 @@ const OldVideoItem: FC<OldVideoItemProps> = ({
|
|
|
126
128
|
if (ref.current) {
|
|
127
129
|
return;
|
|
128
130
|
}
|
|
129
|
-
if (node &&
|
|
131
|
+
if (node && open) {
|
|
130
132
|
setTimeout(() => ReactTooltip.show(node), 5000);
|
|
133
|
+
ref.current = node;
|
|
131
134
|
}
|
|
132
|
-
ref.current = node;
|
|
133
135
|
},
|
|
134
|
-
[
|
|
136
|
+
[open],
|
|
135
137
|
);
|
|
136
138
|
|
|
137
139
|
return (
|
|
@@ -144,7 +146,7 @@ const OldVideoItem: FC<OldVideoItemProps> = ({
|
|
|
144
146
|
>
|
|
145
147
|
{children}
|
|
146
148
|
|
|
147
|
-
{
|
|
149
|
+
{open && <ToolTip id={id} onClose={onClose} />}
|
|
148
150
|
</div>
|
|
149
151
|
);
|
|
150
152
|
};
|
|
@@ -154,53 +156,57 @@ type ToolTipProps = {
|
|
|
154
156
|
onClose: VideoItemProps["onClose"];
|
|
155
157
|
};
|
|
156
158
|
|
|
157
|
-
const ToolTip: FC<ToolTipProps> = ({ id, onClose }) =>
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
flexDirection: "column",
|
|
176
|
-
}}
|
|
177
|
-
>
|
|
159
|
+
const ToolTip: FC<ToolTipProps> = ({ id, onClose }) => {
|
|
160
|
+
const { tutorial } = useMarketingContent();
|
|
161
|
+
|
|
162
|
+
return (
|
|
163
|
+
<ReactTooltipPortal>
|
|
164
|
+
<ReactTooltip
|
|
165
|
+
id={id}
|
|
166
|
+
effect="solid"
|
|
167
|
+
place="right"
|
|
168
|
+
backgroundColor="#5741c3"
|
|
169
|
+
clickable
|
|
170
|
+
className={style.videoTutorialsContainer}
|
|
171
|
+
afterHide={onClose}
|
|
172
|
+
offset={{
|
|
173
|
+
left: 80,
|
|
174
|
+
}}
|
|
175
|
+
role="tooltip"
|
|
176
|
+
getContent={() => (
|
|
178
177
|
<Flex
|
|
179
178
|
sx={{
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
justifyContent: "space-between",
|
|
183
|
-
mb: 1,
|
|
179
|
+
maxWidth: "268px",
|
|
180
|
+
flexDirection: "column",
|
|
184
181
|
}}
|
|
185
182
|
>
|
|
186
|
-
<
|
|
187
|
-
Need Help?
|
|
188
|
-
</Paragraph>
|
|
189
|
-
<Close
|
|
190
|
-
data-testid="video-tooltip-close-button"
|
|
191
|
-
onClick={onClose}
|
|
183
|
+
<Flex
|
|
192
184
|
sx={{
|
|
193
|
-
|
|
185
|
+
flexDirection: "row",
|
|
186
|
+
alignItems: "center",
|
|
187
|
+
justifyContent: "space-between",
|
|
188
|
+
mb: 1,
|
|
194
189
|
}}
|
|
195
|
-
|
|
190
|
+
>
|
|
191
|
+
<Paragraph sx={{ color: "#FFF", fontWeight: 700 }}>
|
|
192
|
+
{tutorial.tooltip.title}
|
|
193
|
+
</Paragraph>
|
|
194
|
+
<Close
|
|
195
|
+
data-testid="video-tooltip-close-button"
|
|
196
|
+
onClick={onClose}
|
|
197
|
+
sx={{
|
|
198
|
+
width: "26px",
|
|
199
|
+
}}
|
|
200
|
+
/>
|
|
201
|
+
</Flex>
|
|
202
|
+
<Paragraph sx={{ color: "#FFF", fontWeight: 400 }}>
|
|
203
|
+
{tutorial.tooltip.description}
|
|
204
|
+
</Paragraph>
|
|
196
205
|
</Flex>
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
/>
|
|
203
|
-
</ReactTooltipPortal>
|
|
204
|
-
);
|
|
206
|
+
)}
|
|
207
|
+
/>
|
|
208
|
+
</ReactTooltipPortal>
|
|
209
|
+
);
|
|
210
|
+
};
|
|
205
211
|
|
|
206
212
|
export default VideoItem;
|
|
@@ -270,7 +270,7 @@ describe("Side Navigation", () => {
|
|
|
270
270
|
|
|
271
271
|
renderSideNavigation({ canUpdate: true });
|
|
272
272
|
|
|
273
|
-
const link = (await screen.findByText("
|
|
273
|
+
const link = (await screen.findByText("Academy")).parentElement
|
|
274
274
|
?.parentElement as HTMLElement;
|
|
275
275
|
|
|
276
276
|
await waitFor(() =>
|
|
@@ -284,7 +284,7 @@ describe("Side Navigation", () => {
|
|
|
284
284
|
});
|
|
285
285
|
|
|
286
286
|
test("Video Item not next", async () => {
|
|
287
|
-
|
|
287
|
+
renderSideNavigation({ canUpdate: true });
|
|
288
288
|
|
|
289
289
|
const link = (await screen.findByText("Tutorial")).parentElement
|
|
290
290
|
?.parentElement as HTMLElement;
|
|
@@ -293,16 +293,5 @@ describe("Side Navigation", () => {
|
|
|
293
293
|
"https://youtube.com/playlist?list=PLUVZjQltoA3wnaQudcqQ3qdZNZ6hyfyhH",
|
|
294
294
|
);
|
|
295
295
|
expect(link).toHaveAttribute("target", "_blank");
|
|
296
|
-
|
|
297
|
-
await user.hover(link);
|
|
298
|
-
|
|
299
|
-
const tooltip = await screen.findByRole("tooltip");
|
|
300
|
-
expect(tooltip).toBeVisible();
|
|
301
|
-
const closeButton = await within(tooltip).findByTestId(
|
|
302
|
-
"video-tooltip-close-button",
|
|
303
|
-
);
|
|
304
|
-
await user.click(closeButton);
|
|
305
|
-
|
|
306
|
-
expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
307
296
|
});
|
|
308
297
|
});
|
|
@@ -125,7 +125,6 @@ const IframeRenderer: React.FunctionComponent<IframeRendererProps> = ({
|
|
|
125
125
|
{/* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions */}
|
|
126
126
|
{simulatorUrl ? (
|
|
127
127
|
<iframe
|
|
128
|
-
id="__iframe-renderer"
|
|
129
128
|
ref={iframeRef}
|
|
130
129
|
src={simulatorUrl}
|
|
131
130
|
style={{
|
|
@@ -141,8 +140,6 @@ const IframeRenderer: React.FunctionComponent<IframeRendererProps> = ({
|
|
|
141
140
|
}}
|
|
142
141
|
/>
|
|
143
142
|
) : null}
|
|
144
|
-
{/* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions */}
|
|
145
|
-
{client?.connected ? <div id="__iframe-ready" /> : null}
|
|
146
143
|
</Flex>
|
|
147
144
|
);
|
|
148
145
|
};
|
|
@@ -11,20 +11,14 @@ import {
|
|
|
11
11
|
} from "./ScreensizeInput";
|
|
12
12
|
|
|
13
13
|
import { ScreenDimensions } from "@lib/models/common/Screenshots";
|
|
14
|
-
import { ComponentUI } from "@lib/models/common/ComponentUI";
|
|
15
|
-
import { VariationSM } from "@lib/models/common/Slice";
|
|
16
14
|
|
|
17
15
|
type ToolbarProps = {
|
|
18
|
-
slice: ComponentUI;
|
|
19
|
-
variation: VariationSM;
|
|
20
16
|
handleScreenSizeChange: (screenDimensions: ScreenDimensions) => void;
|
|
21
17
|
screenDimensions: ScreenDimensions;
|
|
22
18
|
actionsDisabled: boolean;
|
|
23
19
|
};
|
|
24
20
|
|
|
25
21
|
export const Toolbar: React.FC<ToolbarProps> = ({
|
|
26
|
-
slice: _slice,
|
|
27
|
-
variation: _variation,
|
|
28
22
|
handleScreenSizeChange,
|
|
29
23
|
screenDimensions,
|
|
30
24
|
actionsDisabled,
|
|
@@ -57,30 +51,6 @@ export const Toolbar: React.FC<ToolbarProps> = ({
|
|
|
57
51
|
handleScreenSizeChange(newScreenDimensions);
|
|
58
52
|
};
|
|
59
53
|
|
|
60
|
-
// TODO(DT-1534): Uncomment to enable Puppeteer screenshots or delete if we decide to remove Puppeteer
|
|
61
|
-
// const { generateSliceScreenshot } = useSliceMachineActions();
|
|
62
|
-
//
|
|
63
|
-
// const onTakingSliceScreenshot = () => {
|
|
64
|
-
// generateSliceScreenshot(
|
|
65
|
-
// variation.id,
|
|
66
|
-
// slice,
|
|
67
|
-
// {
|
|
68
|
-
// width: screenDimensions.width,
|
|
69
|
-
// height: screenDimensions.height,
|
|
70
|
-
// },
|
|
71
|
-
// "fromSimulator"
|
|
72
|
-
// );
|
|
73
|
-
// };
|
|
74
|
-
//
|
|
75
|
-
// const { isSavingScreenshot } = useSelector(
|
|
76
|
-
// (store: SliceMachineStoreType) => ({
|
|
77
|
-
// isSavingScreenshot: isLoading(
|
|
78
|
-
// store,
|
|
79
|
-
// LoadingKeysEnum.GENERATE_SLICE_SCREENSHOT
|
|
80
|
-
// ),
|
|
81
|
-
// })
|
|
82
|
-
// );
|
|
83
|
-
|
|
84
54
|
return (
|
|
85
55
|
<Flex
|
|
86
56
|
sx={{
|
|
@@ -129,18 +99,6 @@ export const Toolbar: React.FC<ToolbarProps> = ({
|
|
|
129
99
|
sx={{ ml: 2 }}
|
|
130
100
|
/>
|
|
131
101
|
</Flex>
|
|
132
|
-
{/*
|
|
133
|
-
// TODO(DT-1534): Uncomment to enable Puppeteer screenshots or delete if we decide to remove Puppeteer
|
|
134
|
-
<Button
|
|
135
|
-
onClick={onTakingSliceScreenshot}
|
|
136
|
-
label="Take a screenshot"
|
|
137
|
-
isLoading={isSavingScreenshot}
|
|
138
|
-
Icon={AiFillCamera}
|
|
139
|
-
iconSize={20}
|
|
140
|
-
iconFill="#6F6E77"
|
|
141
|
-
variant="secondaryMedium"
|
|
142
|
-
disabled={actionsDisabled}
|
|
143
|
-
/> */}
|
|
144
102
|
</Flex>
|
|
145
103
|
);
|
|
146
104
|
};
|
|
@@ -262,8 +262,6 @@ const Simulator: ComponentWithSliceProps = ({ slice, variation }) => {
|
|
|
262
262
|
}}
|
|
263
263
|
>
|
|
264
264
|
<Toolbar
|
|
265
|
-
slice={slice}
|
|
266
|
-
variation={variation}
|
|
267
265
|
handleScreenSizeChange={setScreenDimensions}
|
|
268
266
|
screenDimensions={screenDimensions}
|
|
269
267
|
actionsDisabled={currentState !== UiState.SUCCESS}
|
|
@@ -7,10 +7,7 @@ import { useRouter } from "next/router";
|
|
|
7
7
|
import ReactTooltip from "react-tooltip";
|
|
8
8
|
|
|
9
9
|
import { PlayCircleIcon } from "@src/icons/PlayCircleIcon";
|
|
10
|
-
import {
|
|
11
|
-
userHasSeenSimulatorToolTip,
|
|
12
|
-
userHasSeenTutorialsToolTip,
|
|
13
|
-
} from "@src/modules/userContext";
|
|
10
|
+
import { userHasSeenSimulatorToolTip } from "@src/modules/userContext";
|
|
14
11
|
import { useSelector } from "react-redux";
|
|
15
12
|
import { SliceMachineStoreType } from "@src/redux/type";
|
|
16
13
|
import useSliceMachineActions from "@src/modules/useSliceMachineActions";
|
|
@@ -97,28 +94,18 @@ const SimulatorButton: React.FC<{
|
|
|
97
94
|
|
|
98
95
|
const { setSeenSimulatorToolTip } = useSliceMachineActions();
|
|
99
96
|
|
|
100
|
-
const { hasSeenSimulatorTooltip
|
|
97
|
+
const { hasSeenSimulatorTooltip } = useSelector(
|
|
101
98
|
(store: SliceMachineStoreType) => ({
|
|
102
99
|
hasSeenSimulatorTooltip: userHasSeenSimulatorToolTip(store),
|
|
103
|
-
hasSeenTutorialsToolTip: userHasSeenTutorialsToolTip(store),
|
|
104
100
|
}),
|
|
105
101
|
);
|
|
106
102
|
|
|
107
103
|
useEffect(() => {
|
|
108
104
|
const node = ref.current;
|
|
109
|
-
if (
|
|
110
|
-
node &&
|
|
111
|
-
isSimulatorAvailableForFramework &&
|
|
112
|
-
!hasSeenSimulatorTooltip &&
|
|
113
|
-
hasSeenTutorialsToolTip
|
|
114
|
-
) {
|
|
105
|
+
if (node && isSimulatorAvailableForFramework && !hasSeenSimulatorTooltip) {
|
|
115
106
|
setTimeout(() => ReactTooltip.show(node), 5000);
|
|
116
107
|
}
|
|
117
|
-
}, [
|
|
118
|
-
isSimulatorAvailableForFramework,
|
|
119
|
-
hasSeenSimulatorTooltip,
|
|
120
|
-
hasSeenTutorialsToolTip,
|
|
121
|
-
]);
|
|
108
|
+
}, [isSimulatorAvailableForFramework, hasSeenSimulatorTooltip]);
|
|
122
109
|
|
|
123
110
|
const onCloseToolTip = () => {
|
|
124
111
|
setSeenSimulatorToolTip();
|
|
@@ -131,9 +118,7 @@ const SimulatorButton: React.FC<{
|
|
|
131
118
|
const disabled = !isSimulatorAvailableForFramework || isTouched;
|
|
132
119
|
|
|
133
120
|
const shouldShowSimulatorTooltip =
|
|
134
|
-
isSimulatorAvailableForFramework &&
|
|
135
|
-
!hasSeenSimulatorTooltip &&
|
|
136
|
-
hasSeenTutorialsToolTip;
|
|
121
|
+
isSimulatorAvailableForFramework && !hasSeenSimulatorTooltip;
|
|
137
122
|
|
|
138
123
|
const shouldShowNeedToSaveTooltip =
|
|
139
124
|
isSimulatorAvailableForFramework &&
|
package/lib/consts.ts
CHANGED
|
@@ -10,13 +10,6 @@ export const API_ID_REGEX = /^[A-Za-z0-9]+(?:_[A-Za-z0-9]+)*$/;
|
|
|
10
10
|
export const API_ID_RETRO_COMPATIBLE_REGEX =
|
|
11
11
|
/^[A-Za-z0-9]+(?:[_-][A-Za-z0-9]+)*$/;
|
|
12
12
|
|
|
13
|
-
export const PRISMIC_ACADEMY_URL =
|
|
14
|
-
"https://prismic.io/academy/prismic-and-nextjs";
|
|
15
|
-
|
|
16
|
-
// VIDEOS
|
|
17
|
-
export const VIDEO_YOUTUBE_PLAYLIST_LINK =
|
|
18
|
-
"https://youtube.com/playlist?list=PLUVZjQltoA3wnaQudcqQ3qdZNZ6hyfyhH";
|
|
19
|
-
|
|
20
13
|
export const VIDEO_WHAT_ARE_SLICES = "placeholders/What_are_Slices_mrvome";
|
|
21
14
|
export const VIDEO_WHAT_ARE_CUSTOM_TYPES = "placeholders/CUSTOM_TYPE__0.5.0";
|
|
22
15
|
|
|
@@ -4,12 +4,6 @@ export interface ScreenDimensions {
|
|
|
4
4
|
width: number;
|
|
5
5
|
height: number;
|
|
6
6
|
}
|
|
7
|
-
export interface ScreenshotRequest {
|
|
8
|
-
libraryName: string;
|
|
9
|
-
sliceId: string;
|
|
10
|
-
variationId: string;
|
|
11
|
-
screenDimensions: ScreenDimensions;
|
|
12
|
-
}
|
|
13
7
|
export interface CustomScreenshotRequest {
|
|
14
8
|
libraryName: string;
|
|
15
9
|
sliceId: string;
|
|
@@ -41,7 +35,4 @@ export interface CustomScreenshotRequest {
|
|
|
41
35
|
variationId: string;
|
|
42
36
|
}
|
|
43
37
|
|
|
44
|
-
export type ScreenshotGenerationMethod =
|
|
45
|
-
| "fromSimulator"
|
|
46
|
-
| "upload"
|
|
47
|
-
| "dragAndDrop";
|
|
38
|
+
export type ScreenshotGenerationMethod = "upload" | "dragAndDrop";
|
package/out/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Slice Machine</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/66b3836ab88b0c5c.css" as="style"/><link rel="stylesheet" href="/_next/static/css/66b3836ab88b0c5c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-2f903acb0cccbf9e.js" defer=""></script><script src="/_next/static/chunks/framework-cdccea7a52cc6e81.js" defer=""></script><script src="/_next/static/chunks/main-5e6780279ca21cb9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Slice Machine</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/66b3836ab88b0c5c.css" as="style"/><link rel="stylesheet" href="/_next/static/css/66b3836ab88b0c5c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-2f903acb0cccbf9e.js" defer=""></script><script src="/_next/static/chunks/framework-cdccea7a52cc6e81.js" defer=""></script><script src="/_next/static/chunks/main-5e6780279ca21cb9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-ee40681cde62eb80.js" defer=""></script><script src="/_next/static/chunks/pages/_error-69b4f498bafdd188.js" defer=""></script><script src="/_next/static/4sLbpIu3gX8jUmr0j0Shc/_buildManifest.js" defer=""></script><script src="/_next/static/4sLbpIu3gX8jUmr0j0Shc/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global 413pep">html{--theme-ui-colors-text:#25252D;--theme-ui-colors-textClear:#6F6E77;--theme-ui-colors-grayLight:#E8E8ED;--theme-ui-colors-hoverBackground:#f2f2f2;--theme-ui-colors-background:#FFF;--theme-ui-colors-backgroundClear:#FFF;--theme-ui-colors-primary:#5D40F7;--theme-ui-colors-purpleLight:#F6F1FC;--theme-ui-colors-purpleLight01:#6548FF1A;--theme-ui-colors-purple12:#F1EEFE;--theme-ui-colors-purpleStrong:#5842C3;--theme-ui-colors-whiteButtonText:#1A1523;--theme-ui-colors-codeBlockBackground:#32275F;--theme-ui-colors-failedConnectText:#86848D;--theme-ui-colors-changesWarning-background:#FFECC7;--theme-ui-colors-changesWarning-color:#5C0C17;--theme-ui-colors-greyIcon:#6F6E77;--theme-ui-colors-greyIconDisabled:#C9D0D8;--theme-ui-colors-missingScreenshotBanner-color:#5C0C17;--theme-ui-colors-missingScreenshotBanner-bg:#FFECC7;--theme-ui-colors-badge-new-bg:#DBEDDB;--theme-ui-colors-badge-new-color:#05644D;--theme-ui-colors-badge-modified-bg:#FFECC7;--theme-ui-colors-badge-modified-color:#5C0C17;--theme-ui-colors-badge-synced-bg:purple12;--theme-ui-colors-badge-synced-color:#5842C3;--theme-ui-colors-badge-deleted-bg:rgba(203, 36, 49, 0.1);--theme-ui-colors-badge-unknown-bg:#F3F5F7;--theme-ui-colors-badge-unknown-color:#9AA4AF;--theme-ui-colors-codeBlockBorder:#545454;--theme-ui-colors-secondary:#F9FAFB;--theme-ui-colors-danger:#CB2431;--theme-ui-colors-highlight:hsl(10, 40%, 90%);--theme-ui-colors-purple:#5B3DF5;--theme-ui-colors-purple08:#5842C3;--theme-ui-colors-muted:#F9F9FB;--theme-ui-colors-icons:#8091A5;--theme-ui-colors-gray:#F8F9FA;--theme-ui-colors-grey01:#F3F5F7;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-grey03:#F4F2F4;--theme-ui-colors-grey04:#9AA4AF;--theme-ui-colors-grey05:#667587;--theme-ui-colors-grey07:#F9F8F9;--theme-ui-colors-grey10:#86848D;--theme-ui-colors-grey12:#1A1523;--theme-ui-colors-greyTransparent:rgba(37, 37, 45, 0.4);--theme-ui-colors-borders:#E4E2E4;--theme-ui-colors-bordersFocused:#6E56CF;--theme-ui-colors-deep:#0E2150;--theme-ui-colors-deep1:#A0ADE7;--theme-ui-colors-lightGreen:#EBF8F1;--theme-ui-colors-lightOrange:#FDF4EC;--theme-ui-colors-darkOrange:#C17C10;--theme-ui-colors-error:#E55737;--theme-ui-colors-success:#3AB97A;--theme-ui-colors-headSection:#fff;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-warning02:#ED811C;--theme-ui-colors-sidebar:#F1F1F4;--theme-ui-colors-link:#6E56CF;--theme-ui-colors-choggleBox:#5163BA;--theme-ui-colors-darkBorder:#DCDBDD;--theme-ui-colors-code-border:#DFE1E5;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;color:var(--theme-ui-colors-text);background-color:var(--theme-ui-colors-background);}html.theme-ui-light,.theme-ui-light html{--theme-ui-colors-text:#25252D;--theme-ui-colors-textClear:#6F6E77;--theme-ui-colors-grayLight:#E8E8ED;--theme-ui-colors-hoverBackground:#f2f2f2;--theme-ui-colors-background:#FFF;--theme-ui-colors-backgroundClear:#FFF;--theme-ui-colors-primary:#5D40F7;--theme-ui-colors-purpleLight:#F6F1FC;--theme-ui-colors-purpleLight01:#6548FF1A;--theme-ui-colors-purple12:#F1EEFE;--theme-ui-colors-purpleStrong:#5842C3;--theme-ui-colors-whiteButtonText:#1A1523;--theme-ui-colors-codeBlockBackground:#32275F;--theme-ui-colors-failedConnectText:#86848D;--theme-ui-colors-changesWarning-background:#FFECC7;--theme-ui-colors-changesWarning-color:#5C0C17;--theme-ui-colors-greyIcon:#6F6E77;--theme-ui-colors-greyIconDisabled:#C9D0D8;--theme-ui-colors-missingScreenshotBanner-color:#5C0C17;--theme-ui-colors-missingScreenshotBanner-bg:#FFECC7;--theme-ui-colors-badge-new-bg:#DBEDDB;--theme-ui-colors-badge-new-color:#05644D;--theme-ui-colors-badge-modified-bg:#FFECC7;--theme-ui-colors-badge-modified-color:#5C0C17;--theme-ui-colors-badge-synced-bg:purple12;--theme-ui-colors-badge-synced-color:#5842C3;--theme-ui-colors-badge-deleted-bg:rgba(203, 36, 49, 0.1);--theme-ui-colors-badge-unknown-bg:#F3F5F7;--theme-ui-colors-badge-unknown-color:#9AA4AF;--theme-ui-colors-codeBlockBorder:#545454;--theme-ui-colors-secondary:#F9FAFB;--theme-ui-colors-danger:#CB2431;--theme-ui-colors-highlight:hsl(10, 40%, 90%);--theme-ui-colors-purple:#5B3DF5;--theme-ui-colors-purple08:#5842C3;--theme-ui-colors-muted:#F9F9FB;--theme-ui-colors-icons:#8091A5;--theme-ui-colors-gray:#F8F9FA;--theme-ui-colors-grey01:#F3F5F7;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-grey03:#F4F2F4;--theme-ui-colors-grey04:#9AA4AF;--theme-ui-colors-grey05:#667587;--theme-ui-colors-grey07:#F9F8F9;--theme-ui-colors-grey10:#86848D;--theme-ui-colors-grey12:#1A1523;--theme-ui-colors-greyTransparent:rgba(37, 37, 45, 0.4);--theme-ui-colors-borders:#E4E2E4;--theme-ui-colors-bordersFocused:#6E56CF;--theme-ui-colors-deep:#0E2150;--theme-ui-colors-deep1:#A0ADE7;--theme-ui-colors-lightGreen:#EBF8F1;--theme-ui-colors-lightOrange:#FDF4EC;--theme-ui-colors-darkOrange:#C17C10;--theme-ui-colors-error:#E55737;--theme-ui-colors-success:#3AB97A;--theme-ui-colors-headSection:#fff;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-warning02:#ED811C;--theme-ui-colors-sidebar:#F1F1F4;--theme-ui-colors-link:#6E56CF;--theme-ui-colors-choggleBox:#5163BA;--theme-ui-colors-darkBorder:#DCDBDD;--theme-ui-colors-code-border:#DFE1E5;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;}html.theme-ui-dark,.theme-ui-dark html{--theme-ui-colors-text:#fff;--theme-ui-colors-textClear:#6E707B;--theme-ui-colors-hoverBackground:#202020;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-background:#202022;--theme-ui-colors-backgroundClear:#28282C;--theme-ui-colors-primary:#4E54D7;--theme-ui-colors-secondary:#28282C;--theme-ui-colors-icons:#5D5D71;--theme-ui-colors-gray:#1D1D1F;--theme-ui-colors-borders:#3A3A46;--theme-ui-colors-deep:#28282C;--theme-ui-colors-headSection:#28282C;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-sidebar:#28282C;--theme-ui-colors-code-border:#5D5D6F;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;--theme-ui-colors-link:#A9A9C6;--theme-ui-colors-choggleBox:#fff;}</style><style data-emotion="css-global h19pgh">*{box-sizing:border-box;}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;line-height:1.5;font-weight:400;}body{margin:0;}</style><style data-emotion="css yvak7d">.css-yvak7d{box-sizing:border-box;margin:0;min-width:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:calc(100vh - 57px);width:100vw;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}</style><div class="css-yvak7d"><style data-emotion="css uqm8ih">.css-uqm8ih{box-sizing:border-box;margin:0;min-width:0;color:var(--theme-ui-colors-primary);overflow:visible;}</style><svg stroke-width="4" viewBox="0 0 32 32" width="48" height="48" fill="none" stroke="currentColor" role="img" id="spinner" class="css-uqm8ih"><title>Loading</title><circle stroke-width="4" r="12" cx="16" cy="16" fill="none" opacity="0.125"></circle><circle stroke-width="4" r="12" cx="16" cy="16" fill="none" stroke-dasharray="20 110"><animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0 16 16" to="360 16 16" dur="750ms" repeatCount="indefinite"></animateTransform></circle></svg></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"4sLbpIu3gX8jUmr0j0Shc","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
self.__BUILD_MANIFEST=function(s,c,e,a,t,i,b,n,f,u){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[c,i,b,"static/chunks/pages/index-5266b7f0ca55025a.js"],"/_error":["static/chunks/pages/_error-69b4f498bafdd188.js"],"/changelog":["static/chunks/870-0c7a8a9622de78b7.js","static/chunks/pages/changelog-75b0bf58d1f3045d.js"],"/changes":[e,"static/chunks/8eec4907-b712959d9f984b68.js","static/chunks/918-38d08f1e885b222d.js",s,a,"static/css/f585032018f6024b.css","static/chunks/pages/changes-9dcb1cdaa8b10560.js"],"/custom-types":[c,i,b,"static/chunks/pages/custom-types-2f5664d9492b13fb.js"],"/custom-types/[customTypeId]":[n,s,c,t,f,u,"static/chunks/pages/custom-types/[customTypeId]-aa37e07c96c8f9b5.js"],"/labs":["static/chunks/pages/labs-2349c21fbac1bd23.js"],"/page-types/[pageTypeId]":[n,s,c,t,f,u,"static/chunks/pages/page-types/[pageTypeId]-d445f5cabeb460c0.js"],"/slices":[e,s,a,"static/css/22d69420bda374a7.css","static/chunks/pages/slices-247c480530e98426.js"],"/slices/[lib]/[sliceName]/[variation]":[e,s,a,t,"static/css/e4f4acc81f000d9c.css","static/chunks/pages/slices/[lib]/[sliceName]/[variation]-c9b5ff7076d2b19b.js"],"/slices/[lib]/[sliceName]/[variation]/simulator":[e,"static/chunks/72585f70-28b4d7d5384b3703.js","static/chunks/18539003-1bb05c8aa7db2bc2.js","static/chunks/585-f3dca093db4b3792.js","static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-5e441f8b049cf91b.js"],sortedPages:["/","/_app","/_error","/changelog","/changes","/custom-types","/custom-types/[customTypeId]","/labs","/page-types/[pageTypeId]","/slices","/slices/[lib]/[sliceName]/[variation]","/slices/[lib]/[sliceName]/[variation]/simulator"]}}("static/chunks/958-2b881a5b68ff11ba.js","static/chunks/550-1dafbcec5d50b384.js","static/chunks/c8eae200-966ce352f7b5d2b9.js","static/chunks/80-c513d12da6156fb7.js","static/chunks/482-e6bbd1fcdcdf79ad.js","static/chunks/840-c317c8ff8de0f202.js","static/css/26b51745402a92af.css","static/chunks/125-e3857af2068bbedf.js","static/chunks/904-d5dfccdb4d9ab010.js","static/css/1fbd45881dcf43c4.css"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|