@soul-refiner/design-system 0.0.5 → 0.0.7
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/{design-system.mjs → @soul-refiner/design-system.mjs} +37349 -34209
- package/dist/@soul-refiner/design-system.umd.js +1398 -0
- package/package.json +6 -2
- package/.eslintrc.js +0 -4
- package/.turbo/turbo-build.log +0 -12
- package/.turbo/turbo-test.log +0 -4417
- package/CHANGELOG.md +0 -7
- package/babel.config.js +0 -6
- package/custom.d.ts +0 -4
- package/dist/design-system.umd.js +0 -1426
- package/src/actions/Button/Button.module.scss +0 -205
- package/src/actions/Button/Button.spec.js +0 -56
- package/src/actions/Button/Button.tsx +0 -143
- package/src/actions/Button/index.ts +0 -1
- package/src/actions/Dropdown/Dropdown.module.scss +0 -77
- package/src/actions/Dropdown/Dropdown.spec.js +0 -149
- package/src/actions/Dropdown/Dropdown.tsx +0 -224
- package/src/actions/Dropdown/index.ts +0 -6
- package/src/actions/Dropzone/Dropzone.module.scss +0 -48
- package/src/actions/Dropzone/Dropzone.spec.js +0 -60
- package/src/actions/Dropzone/Dropzone.tsx +0 -191
- package/src/actions/Dropzone/index.ts +0 -1
- package/src/actions/Rate/Rate.module.scss +0 -17
- package/src/actions/Rate/Rate.tsx +0 -53
- package/src/actions/Rate/index.ts +0 -1
- package/src/actions/Switch/Switch.module.scss +0 -35
- package/src/actions/Switch/Switch.spec.js +0 -31
- package/src/actions/Switch/Switch.tsx +0 -34
- package/src/actions/Switch/index.ts +0 -1
- package/src/actions/index.ts +0 -5
- package/src/cards/CourseCard/CourseCard.module.scss +0 -219
- package/src/cards/CourseCard/CourseCard.spec.js +0 -60
- package/src/cards/CourseCard/CourseCard.tsx +0 -145
- package/src/cards/CourseCard/index.ts +0 -1
- package/src/cards/EpisodeCard/EpisodeCard.module.scss +0 -69
- package/src/cards/EpisodeCard/EpisodeCard.tsx +0 -53
- package/src/cards/EpisodeCard/index.ts +0 -1
- package/src/cards/FeatureCard/FeatureCard.module.scss +0 -116
- package/src/cards/FeatureCard/FeatureCard.spec.js +0 -70
- package/src/cards/FeatureCard/FeatureCard.tsx +0 -123
- package/src/cards/FeatureCard/index.ts +0 -1
- package/src/cards/index.ts +0 -3
- package/src/data/Bar/Bar.module.scss +0 -105
- package/src/data/Bar/Bar.tsx +0 -161
- package/src/data/Bar/index.ts +0 -1
- package/src/data/Line/Line.module.scss +0 -102
- package/src/data/Line/Line.tsx +0 -162
- package/src/data/Line/index.ts +0 -1
- package/src/data/Pie/Pie.module.scss +0 -56
- package/src/data/Pie/Pie.spec.js +0 -72
- package/src/data/Pie/Pie.tsx +0 -111
- package/src/data/Pie/index.ts +0 -1
- package/src/data/index.ts +0 -3
- package/src/editor/Editor.module.scss +0 -125
- package/src/editor/Editor.tsx +0 -327
- package/src/editor/common/elements.ts +0 -50
- package/src/editor/common/index.ts +0 -2
- package/src/editor/common/marks.ts +0 -27
- package/src/editor/components/MediaDrawer/MediaDrawer.module.scss +0 -316
- package/src/editor/components/MediaDrawer/MediaDrawer.tsx +0 -457
- package/src/editor/components/MediaDrawer/index.ts +0 -1
- package/src/editor/components/index.ts +0 -1
- package/src/editor/config/default.ts +0 -213
- package/src/editor/config/index.ts +0 -2
- package/src/editor/config/props.ts +0 -9
- package/src/editor/index.ts +0 -2
- package/src/editor/plateUI.ts +0 -82
- package/src/editor/plugins/blocks.tsx +0 -71
- package/src/editor/plugins/custom/assets/DefaultThumbnail.tsx +0 -57
- package/src/editor/plugins/custom/assets/index.ts +0 -1
- package/src/editor/plugins/custom/buttons.tsx +0 -289
- package/src/editor/plugins/custom/example.tsx +0 -64
- package/src/editor/plugins/custom/exitBreak.ts +0 -41
- package/src/editor/plugins/custom/footnote.tsx +0 -185
- package/src/editor/plugins/custom/index.ts +0 -14
- package/src/editor/plugins/custom/paywall.tsx +0 -156
- package/src/editor/plugins/custom/qa.tsx +0 -390
- package/src/editor/plugins/custom/resetBlockType.ts +0 -29
- package/src/editor/plugins/custom/selectOnBackspace.ts +0 -7
- package/src/editor/plugins/custom/softBreak.ts +0 -20
- package/src/editor/plugins/custom/styles/Button.module.scss +0 -51
- package/src/editor/plugins/custom/styles/Footnote.module.scss +0 -58
- package/src/editor/plugins/custom/styles/Paywall.module.scss +0 -67
- package/src/editor/plugins/custom/styles/QA.module.scss +0 -140
- package/src/editor/plugins/custom/styles/Video.module.scss +0 -79
- package/src/editor/plugins/custom/video.tsx +0 -163
- package/src/editor/plugins/index.ts +0 -18
- package/src/editor/plugins/inline.ts +0 -46
- package/src/editor/plugins/marks.ts +0 -25
- package/src/editor/plugins/utils.ts +0 -22
- package/src/feedback/Chip/Chip.module.scss +0 -23
- package/src/feedback/Chip/Chip.tsx +0 -58
- package/src/feedback/Chip/index.ts +0 -1
- package/src/feedback/Loader/Loader.module.scss +0 -18
- package/src/feedback/Loader/Loader.spec.js +0 -18
- package/src/feedback/Loader/Loader.tsx +0 -53
- package/src/feedback/Loader/index.ts +0 -1
- package/src/feedback/ProgressBar/ProgressBar.module.scss +0 -13
- package/src/feedback/ProgressBar/ProgressBar.tsx +0 -32
- package/src/feedback/ProgressBar/index.ts +0 -1
- package/src/feedback/Toast/Toast.module.scss +0 -44
- package/src/feedback/Toast/Toast.tsx +0 -76
- package/src/feedback/Toast/index.ts +0 -1
- package/src/feedback/Tooltip/Tooltip.module.scss +0 -47
- package/src/feedback/Tooltip/Tooltip.tsx +0 -10
- package/src/feedback/Tooltip/index.ts +0 -1
- package/src/feedback/index.ts +0 -5
- package/src/global.d.ts +0 -6
- package/src/iconography/Avatar/Avatar.module.scss +0 -90
- package/src/iconography/Avatar/Avatar.spec.js +0 -75
- package/src/iconography/Avatar/Avatar.tsx +0 -96
- package/src/iconography/Avatar/DefaultIcon.svg +0 -4
- package/src/iconography/Avatar/DefaultIcon.tsx +0 -12
- package/src/iconography/Avatar/iconHelpers.tsx +0 -186
- package/src/iconography/Avatar/index.ts +0 -1
- package/src/iconography/ColoredIcon/ColoredIcon.module.scss +0 -40
- package/src/iconography/ColoredIcon/ColoredIcon.tsx +0 -30
- package/src/iconography/ColoredIcon/index.ts +0 -5
- package/src/iconography/DevicePreview/DevicePreview.module.scss +0 -143
- package/src/iconography/DevicePreview/DevicePreview.tsx +0 -592
- package/src/iconography/DevicePreview/index.ts +0 -1
- package/src/iconography/IconHeader/IconHeader.module.scss +0 -42
- package/src/iconography/IconHeader/IconHeader.tsx +0 -42
- package/src/iconography/IconHeader/index.ts +0 -1
- package/src/iconography/StarRating/StarRating.tsx +0 -99
- package/src/iconography/StarRating/index.ts +0 -1
- package/src/iconography/index.ts +0 -5
- package/src/implementations/BodyContent/BodyContent.module.scss +0 -38
- package/src/implementations/BodyContent/BodyContent.tsx +0 -78
- package/src/implementations/BodyContent/index.ts +0 -2
- package/src/implementations/JoinGroupModal/JoinGroupModal.module.scss +0 -83
- package/src/implementations/JoinGroupModal/JoinGroupModal.tsx +0 -176
- package/src/implementations/JoinGroupModal/index.ts +0 -1
- package/src/implementations/index.ts +0 -2
- package/src/index.ts +0 -149
- package/src/inputs/CalendarInput/CalendarInput.module.scss +0 -38
- package/src/inputs/CalendarInput/CalendarInput.spec.js +0 -19
- package/src/inputs/CalendarInput/CalendarInput.tsx +0 -29
- package/src/inputs/CalendarInput/index.ts +0 -1
- package/src/inputs/CheckboxInput/CheckboxInput.module.scss +0 -23
- package/src/inputs/CheckboxInput/CheckboxInput.tsx +0 -39
- package/src/inputs/CheckboxInput/index.ts +0 -1
- package/src/inputs/FeedInput/FeedInput.module.scss +0 -48
- package/src/inputs/FeedInput/FeedInput.spec.js +0 -16
- package/src/inputs/FeedInput/FeedInput.tsx +0 -197
- package/src/inputs/FeedInput/index.ts +0 -1
- package/src/inputs/InboxInput/InboxInput.module.scss +0 -48
- package/src/inputs/InboxInput/InboxInput.spec.js +0 -19
- package/src/inputs/InboxInput/InboxInput.tsx +0 -97
- package/src/inputs/InboxInput/index.ts +0 -1
- package/src/inputs/PostInput/PostInput.module.scss +0 -49
- package/src/inputs/PostInput/PostInput.spec.js +0 -19
- package/src/inputs/PostInput/PostInput.tsx +0 -54
- package/src/inputs/PostInput/index.ts +0 -1
- package/src/inputs/RadioInput/RadioInput.module.scss +0 -68
- package/src/inputs/RadioInput/RadioInput.tsx +0 -55
- package/src/inputs/RadioInput/index.ts +0 -1
- package/src/inputs/SearchInput/SearchInput.module.scss +0 -40
- package/src/inputs/SearchInput/SearchInput.tsx +0 -61
- package/src/inputs/SearchInput/index.ts +0 -1
- package/src/inputs/SelectInput/SelectInput.module.scss +0 -66
- package/src/inputs/SelectInput/SelectInput.tsx +0 -145
- package/src/inputs/SelectInput/index.ts +0 -1
- package/src/inputs/TagInput/TagInput.module.scss +0 -75
- package/src/inputs/TagInput/TagInput.tsx +0 -115
- package/src/inputs/TagInput/index.ts +0 -1
- package/src/inputs/TextInput/TextInput.module.scss +0 -35
- package/src/inputs/TextInput/TextInput.tsx +0 -46
- package/src/inputs/TextInput/index.ts +0 -1
- package/src/inputs/index.ts +0 -10
- package/src/lists/ContactDetails/ContactDetails.module.scss +0 -70
- package/src/lists/ContactDetails/ContactDetails.spec.js +0 -69
- package/src/lists/ContactDetails/ContactDetails.tsx +0 -185
- package/src/lists/ContactDetails/index.ts +0 -1
- package/src/lists/index.ts +0 -1
- package/src/navigation/Breadcrumbs/Breadcrumbs.module.scss +0 -18
- package/src/navigation/Breadcrumbs/Breadcrumbs.spec.js +0 -38
- package/src/navigation/Breadcrumbs/Breadcrumbs.tsx +0 -43
- package/src/navigation/Breadcrumbs/index.ts +0 -1
- package/src/navigation/Drawer/Drawer.module.scss +0 -104
- package/src/navigation/Drawer/Drawer.tsx +0 -177
- package/src/navigation/Drawer/index.ts +0 -1
- package/src/navigation/EditorBar/EditorBar.module.scss +0 -118
- package/src/navigation/EditorBar/EditorBar.tsx +0 -416
- package/src/navigation/EditorBar/components/AlignmentDropdown/AlignmentDropdown.tsx +0 -106
- package/src/navigation/EditorBar/components/AlignmentDropdown/index.ts +0 -1
- package/src/navigation/EditorBar/components/ButtonModal/ButtonModal.module.scss +0 -85
- package/src/navigation/EditorBar/components/ButtonModal/ButtonModal.tsx +0 -314
- package/src/navigation/EditorBar/components/ButtonModal/assets/Comment.tsx +0 -28
- package/src/navigation/EditorBar/components/ButtonModal/assets/GiftSubscription.tsx +0 -28
- package/src/navigation/EditorBar/components/ButtonModal/assets/Link.tsx +0 -28
- package/src/navigation/EditorBar/components/ButtonModal/assets/Share.tsx +0 -28
- package/src/navigation/EditorBar/components/ButtonModal/assets/ShareCommunity.tsx +0 -42
- package/src/navigation/EditorBar/components/ButtonModal/assets/Signup.tsx +0 -68
- package/src/navigation/EditorBar/components/ButtonModal/assets/Special.tsx +0 -24
- package/src/navigation/EditorBar/components/ButtonModal/assets/Subscribe.tsx +0 -28
- package/src/navigation/EditorBar/components/ButtonModal/assets/index.ts +0 -8
- package/src/navigation/EditorBar/components/ButtonModal/index.ts +0 -1
- package/src/navigation/EditorBar/components/FontDropdown/FontDropdown.module.scss +0 -16
- package/src/navigation/EditorBar/components/FontDropdown/FontDropdown.tsx +0 -137
- package/src/navigation/EditorBar/components/FontDropdown/index.ts +0 -1
- package/src/navigation/EditorBar/components/MoreDropdown/MoreDropdown.module.scss +0 -43
- package/src/navigation/EditorBar/components/MoreDropdown/MoreDropdown.tsx +0 -124
- package/src/navigation/EditorBar/components/MoreDropdown/index.ts +0 -1
- package/src/navigation/EditorBar/components/OutlineDropdown/OutlineDropdown.module.scss +0 -21
- package/src/navigation/EditorBar/components/OutlineDropdown/OutlineDropdown.tsx +0 -37
- package/src/navigation/EditorBar/components/OutlineDropdown/index.ts +0 -1
- package/src/navigation/EditorBar/components/TextTypeDropdown/TextTypeDropdown.module.scss +0 -51
- package/src/navigation/EditorBar/components/TextTypeDropdown/TextTypeDropdown.tsx +0 -80
- package/src/navigation/EditorBar/components/TextTypeDropdown/index.ts +0 -1
- package/src/navigation/EditorBar/components/VideoModal/VideoModal.module.scss +0 -150
- package/src/navigation/EditorBar/components/VideoModal/VideoModal.tsx +0 -163
- package/src/navigation/EditorBar/components/VideoModal/index.ts +0 -1
- package/src/navigation/EditorBar/components/index.ts +0 -7
- package/src/navigation/EditorBar/index.ts +0 -1
- package/src/navigation/MenuTabs/MenuTabs.module.scss +0 -34
- package/src/navigation/MenuTabs/MenuTabs.spec.js +0 -36
- package/src/navigation/MenuTabs/MenuTabs.tsx +0 -52
- package/src/navigation/MenuTabs/index.ts +0 -1
- package/src/navigation/Navigation/Navigation.module.scss +0 -92
- package/src/navigation/Navigation/Navigation.spec.js +0 -144
- package/src/navigation/Navigation/Navigation.tsx +0 -111
- package/src/navigation/Navigation/SubNavigation.module.scss +0 -255
- package/src/navigation/Navigation/SubNavigation.spec.js +0 -112
- package/src/navigation/Navigation/SubNavigation.tsx +0 -443
- package/src/navigation/Navigation/index.ts +0 -15
- package/src/navigation/Pagination/Pagination.module.scss +0 -49
- package/src/navigation/Pagination/Pagination.tsx +0 -115
- package/src/navigation/Pagination/index.ts +0 -1
- package/src/navigation/index.ts +0 -21
- package/src/surfaces/Comment/Comment.module.scss +0 -106
- package/src/surfaces/Comment/Comment.spec.js +0 -105
- package/src/surfaces/Comment/Comment.tsx +0 -157
- package/src/surfaces/Comment/index.ts +0 -1
- package/src/surfaces/Faq/Faq.module.scss +0 -91
- package/src/surfaces/Faq/Faq.spec.js +0 -38
- package/src/surfaces/Faq/Faq.tsx +0 -156
- package/src/surfaces/Faq/index.ts +0 -1
- package/src/surfaces/Message/Message.module.scss +0 -37
- package/src/surfaces/Message/Message.spec.js +0 -47
- package/src/surfaces/Message/Message.tsx +0 -54
- package/src/surfaces/Message/index.ts +0 -1
- package/src/surfaces/Modal/Modal.module.scss +0 -52
- package/src/surfaces/Modal/Modal.spec.js +0 -38
- package/src/surfaces/Modal/Modal.tsx +0 -131
- package/src/surfaces/Modal/index.ts +0 -5
- package/src/surfaces/Plan/Plan.module.scss +0 -79
- package/src/surfaces/Plan/Plan.tsx +0 -75
- package/src/surfaces/Plan/index.ts +0 -1
- package/src/surfaces/Post/Post.module.scss +0 -46
- package/src/surfaces/Post/Post.spec.js +0 -103
- package/src/surfaces/Post/Post.tsx +0 -185
- package/src/surfaces/Post/index.ts +0 -1
- package/src/surfaces/Post/postHelpers.ts +0 -20
- package/src/surfaces/ProfileHeader/ProfileHeader.module.scss +0 -202
- package/src/surfaces/ProfileHeader/ProfileHeader.tsx +0 -103
- package/src/surfaces/ProfileHeader/index.ts +0 -1
- package/src/surfaces/RatingsOverview/RatingsOverview.module.scss +0 -54
- package/src/surfaces/RatingsOverview/RatingsOverview.tsx +0 -69
- package/src/surfaces/RatingsOverview/index.ts +0 -1
- package/src/surfaces/Review/Review.module.scss +0 -73
- package/src/surfaces/Review/Review.tsx +0 -88
- package/src/surfaces/Review/index.ts +0 -1
- package/src/surfaces/index.ts +0 -9
- package/src/tables/Filter/Filter.module.scss +0 -34
- package/src/tables/Filter/Filter.tsx +0 -30
- package/src/tables/Filter/index.ts +0 -1
- package/src/tables/Table/Table.module.scss +0 -126
- package/src/tables/Table/Table.spec.js +0 -113
- package/src/tables/Table/Table.tsx +0 -251
- package/src/tables/Table/index.ts +0 -7
- package/src/tables/index.ts +0 -7
- package/tsconfig.json +0 -14
- package/vite.config.ts +0 -29
|
@@ -1,457 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
findNodePath,
|
|
4
|
-
replaceNodeChildren,
|
|
5
|
-
removeNodes,
|
|
6
|
-
setNodes,
|
|
7
|
-
TElement,
|
|
8
|
-
usePlateEditorRef,
|
|
9
|
-
} from "@udecode/plate";
|
|
10
|
-
import {
|
|
11
|
-
ClosedCaptions,
|
|
12
|
-
Details,
|
|
13
|
-
Image,
|
|
14
|
-
Upload,
|
|
15
|
-
VideoPlay,
|
|
16
|
-
} from "@soul-refiner/icons/src";
|
|
17
|
-
import { secondsToTimeString } from "@soul-refiner/utils/src";
|
|
18
|
-
import { Media } from "@soul-refiner/models";
|
|
19
|
-
|
|
20
|
-
import { Button, Dropzone, Switch } from "../../../actions";
|
|
21
|
-
import { EditorContext } from "../../Editor";
|
|
22
|
-
import { TextInput } from "../../../inputs";
|
|
23
|
-
import { Drawer } from "../../../navigation";
|
|
24
|
-
import { Modal } from "../../../surfaces";
|
|
25
|
-
|
|
26
|
-
import styles from "./MediaDrawer.module.scss";
|
|
27
|
-
import { ELEMENT_VIDEO } from "../../common";
|
|
28
|
-
|
|
29
|
-
export interface MediaDrawerProps {
|
|
30
|
-
element: TElement;
|
|
31
|
-
open: boolean;
|
|
32
|
-
toggle: () => void;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export const MediaDrawer = ({ element, open, toggle }: MediaDrawerProps) => {
|
|
36
|
-
const {
|
|
37
|
-
availableVideos,
|
|
38
|
-
handleChangeVideo,
|
|
39
|
-
handleDeleteVideo,
|
|
40
|
-
handleUploadImage,
|
|
41
|
-
handleUploadVideo,
|
|
42
|
-
} = React.useContext(EditorContext);
|
|
43
|
-
const { children, type: __, ...spreadVideo } = element;
|
|
44
|
-
const text = children[0].text as string;
|
|
45
|
-
const video = spreadVideo as unknown as Media;
|
|
46
|
-
const editorRef = usePlateEditorRef("main");
|
|
47
|
-
const [mediaTab, setMediaTab] = React.useState("Upload");
|
|
48
|
-
const [title, setTitle] = React.useState(video.title);
|
|
49
|
-
const [synopsis, setSynopsis] = React.useState(video.synopsis);
|
|
50
|
-
const [videoToBeChanged, setVideoToBeChanged] = React.useState<null | Media>(
|
|
51
|
-
null
|
|
52
|
-
);
|
|
53
|
-
const [deleteText, setDeleteText] = React.useState("");
|
|
54
|
-
|
|
55
|
-
const path = findNodePath(editorRef, element);
|
|
56
|
-
|
|
57
|
-
React.useEffect(() => {
|
|
58
|
-
if (title !== text && typeof text === "string") setTitle(text);
|
|
59
|
-
}, [text]);
|
|
60
|
-
|
|
61
|
-
if (!video) return null;
|
|
62
|
-
|
|
63
|
-
const handleTitle = (event: React.FormEvent) => {
|
|
64
|
-
const value = (event.target as HTMLTextAreaElement).value;
|
|
65
|
-
if (path) {
|
|
66
|
-
replaceNodeChildren(editorRef, {
|
|
67
|
-
at: path,
|
|
68
|
-
nodes: {
|
|
69
|
-
text: value,
|
|
70
|
-
},
|
|
71
|
-
});
|
|
72
|
-
setNodes(
|
|
73
|
-
editorRef,
|
|
74
|
-
{
|
|
75
|
-
title,
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
at: path,
|
|
79
|
-
}
|
|
80
|
-
);
|
|
81
|
-
setTitle(value);
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const handleSynopsis = (event: React.FormEvent) => {
|
|
86
|
-
const value = (event.target as HTMLTextAreaElement).value;
|
|
87
|
-
setNodes(
|
|
88
|
-
editorRef,
|
|
89
|
-
{
|
|
90
|
-
synopsis,
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
at: path,
|
|
94
|
-
}
|
|
95
|
-
);
|
|
96
|
-
setSynopsis(value);
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const handleMediaTabs = (option: string) => setMediaTab(option);
|
|
100
|
-
|
|
101
|
-
const handleDeleteTextChange = (event: React.FormEvent) => {
|
|
102
|
-
const value = (event.target as HTMLInputElement).value;
|
|
103
|
-
setDeleteText(value);
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
const handleVideoReplace = () => {
|
|
107
|
-
if (videoToBeChanged) {
|
|
108
|
-
setTitle(videoToBeChanged.title);
|
|
109
|
-
setSynopsis(videoToBeChanged.synopsis);
|
|
110
|
-
setVideoToBeChanged(null);
|
|
111
|
-
setNodes(
|
|
112
|
-
editorRef,
|
|
113
|
-
{
|
|
114
|
-
id: videoToBeChanged.id,
|
|
115
|
-
created: videoToBeChanged.created,
|
|
116
|
-
parentId: videoToBeChanged.parentId,
|
|
117
|
-
captions: videoToBeChanged.captions ?? [],
|
|
118
|
-
duration: videoToBeChanged.duration,
|
|
119
|
-
sample: videoToBeChanged.sample,
|
|
120
|
-
source: videoToBeChanged.source,
|
|
121
|
-
status: videoToBeChanged.status,
|
|
122
|
-
synopsis: videoToBeChanged.synopsis,
|
|
123
|
-
thumbnail: videoToBeChanged.thumbnail,
|
|
124
|
-
title: videoToBeChanged.title,
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
at: path,
|
|
128
|
-
}
|
|
129
|
-
);
|
|
130
|
-
if (path) {
|
|
131
|
-
replaceNodeChildren(editorRef, {
|
|
132
|
-
at: path,
|
|
133
|
-
nodes: {
|
|
134
|
-
text: videoToBeChanged.title,
|
|
135
|
-
},
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
const handleVideoDelete = () => {
|
|
142
|
-
handleDeleteVideo(video.id);
|
|
143
|
-
removeNodes(editorRef, {
|
|
144
|
-
at: path,
|
|
145
|
-
});
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
const handleSourceChange = async (files: FileList) => {
|
|
149
|
-
const file = files[0];
|
|
150
|
-
handleUploadVideo(file).then((obj) => setVideoToBeChanged(obj));
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
const handleThumbnailChange = async (files: FileList) => {
|
|
154
|
-
const file = files[0];
|
|
155
|
-
handleUploadImage(file).then((url) => {
|
|
156
|
-
setNodes(
|
|
157
|
-
editorRef,
|
|
158
|
-
{
|
|
159
|
-
thumbnail: url,
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
at: path,
|
|
163
|
-
}
|
|
164
|
-
);
|
|
165
|
-
});
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
const handleSave = () => {
|
|
169
|
-
handleChangeVideo(video);
|
|
170
|
-
toggle();
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
return (
|
|
174
|
-
<Drawer className={styles.drawer} open={open} toggle={toggle}>
|
|
175
|
-
<Drawer.Heading>Media Settings</Drawer.Heading>
|
|
176
|
-
<Drawer.Action onClick={() => toggle()}>Cancel</Drawer.Action>
|
|
177
|
-
<Drawer.Action onClick={handleSave}>Save</Drawer.Action>
|
|
178
|
-
<h4 className={styles.mediaName}>{text}</h4>
|
|
179
|
-
<Drawer.Tab name="Media">
|
|
180
|
-
<Drawer.Item
|
|
181
|
-
header={{
|
|
182
|
-
as: "h5",
|
|
183
|
-
color: "orange",
|
|
184
|
-
icon: (
|
|
185
|
-
<Details
|
|
186
|
-
iconSize={20}
|
|
187
|
-
size={24}
|
|
188
|
-
style={{ backgroundColor: "transparent" }}
|
|
189
|
-
/>
|
|
190
|
-
),
|
|
191
|
-
title: "Details",
|
|
192
|
-
}}
|
|
193
|
-
>
|
|
194
|
-
<div contentEditable={false} className={styles.details}>
|
|
195
|
-
<h6>Title</h6>
|
|
196
|
-
<p>
|
|
197
|
-
Pick an easy to read, memorable title for your product. Example:
|
|
198
|
-
"10 Lessons from the Book of Matthew." Suggested 140 characters
|
|
199
|
-
max.
|
|
200
|
-
</p>
|
|
201
|
-
<TextInput
|
|
202
|
-
characterCount={false}
|
|
203
|
-
onChange={handleTitle}
|
|
204
|
-
placeholder="Title"
|
|
205
|
-
value={title}
|
|
206
|
-
/>
|
|
207
|
-
<h6>Description</h6>
|
|
208
|
-
<p>
|
|
209
|
-
Tell us a little bit about this media. The description will appear
|
|
210
|
-
on the overview page.
|
|
211
|
-
</p>
|
|
212
|
-
<TextInput
|
|
213
|
-
characterCount={true}
|
|
214
|
-
maxLength={350}
|
|
215
|
-
onChange={handleSynopsis}
|
|
216
|
-
placeholder="Description..."
|
|
217
|
-
value={synopsis}
|
|
218
|
-
/>
|
|
219
|
-
</div>
|
|
220
|
-
</Drawer.Item>
|
|
221
|
-
<Drawer.Item
|
|
222
|
-
header={{
|
|
223
|
-
as: "h5",
|
|
224
|
-
color: "purple",
|
|
225
|
-
icon: (
|
|
226
|
-
<Upload
|
|
227
|
-
iconSize={20}
|
|
228
|
-
size={24}
|
|
229
|
-
style={{ backgroundColor: "transparent" }}
|
|
230
|
-
/>
|
|
231
|
-
),
|
|
232
|
-
title: "Media",
|
|
233
|
-
}}
|
|
234
|
-
>
|
|
235
|
-
<div className={styles.media}>
|
|
236
|
-
<Switch
|
|
237
|
-
active={mediaTab}
|
|
238
|
-
onClick={handleMediaTabs}
|
|
239
|
-
options={["Upload", "Select from list"]}
|
|
240
|
-
/>
|
|
241
|
-
<div className={styles.contentWrapper}>
|
|
242
|
-
{mediaTab === "Upload" && (
|
|
243
|
-
<Dropzone
|
|
244
|
-
color="purple"
|
|
245
|
-
fileType="video"
|
|
246
|
-
onDrop={handleSourceChange}
|
|
247
|
-
showBrowse
|
|
248
|
-
text="Drag here or "
|
|
249
|
-
/>
|
|
250
|
-
)}
|
|
251
|
-
{mediaTab === "Select from list" && (
|
|
252
|
-
<div className={styles.select}>
|
|
253
|
-
<div className={styles.videoWrapper}>
|
|
254
|
-
{availableVideos.map((video) => (
|
|
255
|
-
<div
|
|
256
|
-
className={styles.video}
|
|
257
|
-
key={video.id}
|
|
258
|
-
onClick={() => setVideoToBeChanged(video)}
|
|
259
|
-
>
|
|
260
|
-
<div className={styles.thumbnailWrapper}>
|
|
261
|
-
<img src={video.thumbnail} alt={video.title} />
|
|
262
|
-
<span className={styles.duration}>
|
|
263
|
-
{secondsToTimeString(video.duration)}
|
|
264
|
-
</span>
|
|
265
|
-
</div>
|
|
266
|
-
<p className={styles.title}>{video.title}</p>
|
|
267
|
-
<div
|
|
268
|
-
className={`${styles.selected} ${
|
|
269
|
-
videoToBeChanged?.id === video.id ? "active" : ""
|
|
270
|
-
}`}
|
|
271
|
-
/>
|
|
272
|
-
</div>
|
|
273
|
-
))}
|
|
274
|
-
</div>
|
|
275
|
-
</div>
|
|
276
|
-
)}
|
|
277
|
-
<div className={styles.buttonWrapper}>
|
|
278
|
-
<Modal>
|
|
279
|
-
<Modal.Trigger>
|
|
280
|
-
<Button
|
|
281
|
-
buttonColor="var(--color-blue-3)"
|
|
282
|
-
disabled={!videoToBeChanged}
|
|
283
|
-
shape="rectangular"
|
|
284
|
-
size="large"
|
|
285
|
-
>
|
|
286
|
-
Replace Video
|
|
287
|
-
</Button>
|
|
288
|
-
</Modal.Trigger>
|
|
289
|
-
<Modal.Content header={<h4>Replace Video</h4>}>
|
|
290
|
-
<div className={styles.modal}>
|
|
291
|
-
<p>
|
|
292
|
-
Replace this file with a different version. Stats,
|
|
293
|
-
public comments, and likes associated with this video
|
|
294
|
-
will not be affected.
|
|
295
|
-
</p>
|
|
296
|
-
<div
|
|
297
|
-
className={`${styles.buttonWrapper} ${styles.replaceModal}`}
|
|
298
|
-
>
|
|
299
|
-
<Modal.Dismiss>
|
|
300
|
-
<Button
|
|
301
|
-
buttonType="secondary"
|
|
302
|
-
shape="rectangular"
|
|
303
|
-
size="large"
|
|
304
|
-
>
|
|
305
|
-
Cancel
|
|
306
|
-
</Button>
|
|
307
|
-
</Modal.Dismiss>
|
|
308
|
-
<Modal.Dismiss>
|
|
309
|
-
<Button
|
|
310
|
-
buttonColor="var(--color-blue-3)"
|
|
311
|
-
onClick={handleVideoReplace}
|
|
312
|
-
shape="rectangular"
|
|
313
|
-
size="large"
|
|
314
|
-
>
|
|
315
|
-
Replace
|
|
316
|
-
</Button>
|
|
317
|
-
</Modal.Dismiss>
|
|
318
|
-
</div>
|
|
319
|
-
</div>
|
|
320
|
-
</Modal.Content>
|
|
321
|
-
</Modal>
|
|
322
|
-
<Modal>
|
|
323
|
-
<Modal.Trigger>
|
|
324
|
-
<Button
|
|
325
|
-
buttonColor="#FFFFFF"
|
|
326
|
-
shape="rectangular"
|
|
327
|
-
size="large"
|
|
328
|
-
style={{
|
|
329
|
-
border: "1px solid var(--color-red-5)",
|
|
330
|
-
}}
|
|
331
|
-
>
|
|
332
|
-
Delete Video
|
|
333
|
-
</Button>
|
|
334
|
-
</Modal.Trigger>
|
|
335
|
-
<Modal.Content header={<h4>Delete this video?</h4>}>
|
|
336
|
-
<div className={`${styles.modal} ${styles.deleteWrapper}`}>
|
|
337
|
-
<p>
|
|
338
|
-
This will permanently delete this video, including all
|
|
339
|
-
analytics, removing it from your course and player. This
|
|
340
|
-
action cannot be undone.
|
|
341
|
-
</p>
|
|
342
|
-
<p>Are you sure you want to delete this video?</p>
|
|
343
|
-
<p>Type DELETE to confirm.</p>
|
|
344
|
-
<input
|
|
345
|
-
onChange={handleDeleteTextChange}
|
|
346
|
-
value={deleteText}
|
|
347
|
-
/>
|
|
348
|
-
<div
|
|
349
|
-
className={`${styles.buttonWrapper} ${styles.deleteModal}`}
|
|
350
|
-
>
|
|
351
|
-
<Modal.Dismiss>
|
|
352
|
-
<Button
|
|
353
|
-
buttonType="secondary"
|
|
354
|
-
shape="rectangular"
|
|
355
|
-
size="large"
|
|
356
|
-
>
|
|
357
|
-
Cancel
|
|
358
|
-
</Button>
|
|
359
|
-
</Modal.Dismiss>
|
|
360
|
-
<Modal.Dismiss>
|
|
361
|
-
<Button
|
|
362
|
-
disabled={deleteText !== "DELETE"}
|
|
363
|
-
onClick={handleVideoDelete}
|
|
364
|
-
shape="rectangular"
|
|
365
|
-
size="large"
|
|
366
|
-
>
|
|
367
|
-
Delete
|
|
368
|
-
</Button>
|
|
369
|
-
</Modal.Dismiss>
|
|
370
|
-
</div>
|
|
371
|
-
</div>
|
|
372
|
-
</Modal.Content>
|
|
373
|
-
</Modal>
|
|
374
|
-
</div>
|
|
375
|
-
</div>
|
|
376
|
-
</div>
|
|
377
|
-
</Drawer.Item>
|
|
378
|
-
<Drawer.Item
|
|
379
|
-
header={{
|
|
380
|
-
as: "h5",
|
|
381
|
-
color: "green",
|
|
382
|
-
icon: (
|
|
383
|
-
<Image
|
|
384
|
-
iconSize={24}
|
|
385
|
-
size={24}
|
|
386
|
-
style={{ backgroundColor: "transparent" }}
|
|
387
|
-
/>
|
|
388
|
-
),
|
|
389
|
-
title: "Thumbnail",
|
|
390
|
-
}}
|
|
391
|
-
>
|
|
392
|
-
<div className={styles.thumbnail}>
|
|
393
|
-
<Dropzone
|
|
394
|
-
color="green"
|
|
395
|
-
fileType="image"
|
|
396
|
-
onDrop={handleThumbnailChange}
|
|
397
|
-
showBrowse
|
|
398
|
-
text="Drag here or "
|
|
399
|
-
/>
|
|
400
|
-
</div>
|
|
401
|
-
</Drawer.Item>
|
|
402
|
-
<Drawer.Item
|
|
403
|
-
header={{
|
|
404
|
-
as: "h5",
|
|
405
|
-
color: "turquoise",
|
|
406
|
-
icon: (
|
|
407
|
-
<VideoPlay
|
|
408
|
-
iconSize={20}
|
|
409
|
-
size={24}
|
|
410
|
-
style={{ backgroundColor: "transparent" }}
|
|
411
|
-
/>
|
|
412
|
-
),
|
|
413
|
-
title: "Add to Playlist",
|
|
414
|
-
}}
|
|
415
|
-
>
|
|
416
|
-
<div className={styles.addToPlaylist}></div>
|
|
417
|
-
</Drawer.Item>
|
|
418
|
-
</Drawer.Tab>
|
|
419
|
-
<Drawer.Tab name="Media">
|
|
420
|
-
<Drawer.Item
|
|
421
|
-
header={{
|
|
422
|
-
as: "h5",
|
|
423
|
-
color: "purple",
|
|
424
|
-
icon: (
|
|
425
|
-
<ClosedCaptions
|
|
426
|
-
iconSize={20}
|
|
427
|
-
size={24}
|
|
428
|
-
style={{ backgroundColor: "transparent" }}
|
|
429
|
-
/>
|
|
430
|
-
),
|
|
431
|
-
title: "Video Subtitles",
|
|
432
|
-
}}
|
|
433
|
-
>
|
|
434
|
-
<div contentEditable={false} className={styles.captions}></div>
|
|
435
|
-
</Drawer.Item>
|
|
436
|
-
</Drawer.Tab>
|
|
437
|
-
<Drawer.Tab name="Sample">
|
|
438
|
-
<Drawer.Item
|
|
439
|
-
header={{
|
|
440
|
-
as: "h5",
|
|
441
|
-
color: "purple",
|
|
442
|
-
icon: (
|
|
443
|
-
<ClosedCaptions
|
|
444
|
-
iconSize={20}
|
|
445
|
-
size={24}
|
|
446
|
-
style={{ backgroundColor: "transparent" }}
|
|
447
|
-
/>
|
|
448
|
-
),
|
|
449
|
-
title: "Video Sample",
|
|
450
|
-
}}
|
|
451
|
-
>
|
|
452
|
-
<div contentEditable={false} className={styles.captions}></div>
|
|
453
|
-
</Drawer.Item>
|
|
454
|
-
</Drawer.Tab>
|
|
455
|
-
</Drawer>
|
|
456
|
-
);
|
|
457
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { MediaDrawer, type MediaDrawerProps } from "./MediaDrawer";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { MediaDrawer, type MediaDrawerProps } from "./MediaDrawer";
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_CONTENT = [
|
|
2
|
-
{
|
|
3
|
-
type: "h1",
|
|
4
|
-
children: [
|
|
5
|
-
{
|
|
6
|
-
text: "Module 1: The Warrior Identity",
|
|
7
|
-
bold: true,
|
|
8
|
-
},
|
|
9
|
-
],
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
id: "video-234jlnlknsdlkfjwlkjaa",
|
|
13
|
-
parentId: "course-1lk4j3k4jlkj2l4k2j34lkj",
|
|
14
|
-
children: [
|
|
15
|
-
{
|
|
16
|
-
text: "The DNA of a Warrior",
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
captions: [],
|
|
20
|
-
duration: 3765,
|
|
21
|
-
source: "",
|
|
22
|
-
synopsis:
|
|
23
|
-
"Understanding the battlefield is the first key to winning the war for sexual purity. In this episode, you will discover hell's strategies against the 21st Century Church and be introduced to the four components of the noose of sexual bondage. Learn the first key steps to freedom and how to stay pure.",
|
|
24
|
-
thumbnail: "video-thumbnail.jpg",
|
|
25
|
-
title: "The DNA of a Warrior",
|
|
26
|
-
type: "video",
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
type: "p",
|
|
30
|
-
children: [
|
|
31
|
-
{
|
|
32
|
-
text: "Welcome to Warpath. You’re about to embark on a journey towards lifelong healing, freedom and victory. This is a season of training. It’s sanctification on steroids, not for the faint-hearted, but for those who truly desire to live the rest of their lives for Jesus. No reserves, no retreats, no regrets.",
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
type: "footnote",
|
|
36
|
-
children: [
|
|
37
|
-
{
|
|
38
|
-
text: "This is a footnote",
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
text: " What was once your deepest, darkest secret will now become the word of your testimony that heals and liberates others.",
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
type: "q-n-a",
|
|
49
|
-
children: [
|
|
50
|
-
{
|
|
51
|
-
type: "p",
|
|
52
|
-
children: [
|
|
53
|
-
{
|
|
54
|
-
text: "Ask your question...",
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
type: "p",
|
|
62
|
-
children: [
|
|
63
|
-
{
|
|
64
|
-
text: "In this new season, God is calling you up. He’s calling you to a higher level, a place where you’re no longer part of the problem but are becoming a part of the solution.",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
type: "footnote",
|
|
68
|
-
children: [
|
|
69
|
-
{
|
|
70
|
-
text: "This is another footnote",
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
text: "",
|
|
76
|
-
},
|
|
77
|
-
],
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
type: "blockquote",
|
|
81
|
-
children: [
|
|
82
|
-
{
|
|
83
|
-
text: '"Warpath isn’t about just winning for you; that’s the beginning. Warpath is about you taking the battle and winning for others so they can have their families, and their marriages, and their destinies." \n— ',
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
text: "Dr. Doug Weiss",
|
|
87
|
-
italic: true,
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
type: "hr",
|
|
93
|
-
children: [
|
|
94
|
-
{
|
|
95
|
-
text: "",
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
type: "h2",
|
|
101
|
-
children: [
|
|
102
|
-
{
|
|
103
|
-
text: "Lesson Overview",
|
|
104
|
-
bold: true,
|
|
105
|
-
},
|
|
106
|
-
],
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
type: "h3",
|
|
110
|
-
align: "center",
|
|
111
|
-
children: [
|
|
112
|
-
{
|
|
113
|
-
text: "THE WARRIOR IDENTITY",
|
|
114
|
-
bold: true,
|
|
115
|
-
fontSize: "16px",
|
|
116
|
-
},
|
|
117
|
-
],
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type: "hr",
|
|
121
|
-
children: [
|
|
122
|
-
{
|
|
123
|
-
text: "",
|
|
124
|
-
},
|
|
125
|
-
],
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
type: "img",
|
|
129
|
-
url: "https://source.unsplash.com/1600x900/?christian",
|
|
130
|
-
children: [
|
|
131
|
-
{
|
|
132
|
-
text: "",
|
|
133
|
-
},
|
|
134
|
-
],
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
type: "p",
|
|
138
|
-
children: [
|
|
139
|
-
{
|
|
140
|
-
text: "Identity: You will have to grasp your true identity in Christ. You cannot look at this as a “what”, but instead about a “who”. We must become more like Christ, because He is a warrior.",
|
|
141
|
-
},
|
|
142
|
-
],
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
type: "p",
|
|
146
|
-
children: [
|
|
147
|
-
{
|
|
148
|
-
text: "A different DNA: As a warrior, your spiritual genetic code will be different from those who haven’t tasted the victory and grace you’ve experienced from this battle. You’ve experienced truth as a person: Jesus; and it has forever changed you. You’ve been set apart as a “fighting man”, no longer a civilian idly consumed by the cares of this world, but a warrior who’s passionate about the Kingdom and craving some sweet revenge.",
|
|
149
|
-
},
|
|
150
|
-
],
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
type: "code_block",
|
|
154
|
-
lang: "typescript",
|
|
155
|
-
children: [
|
|
156
|
-
{
|
|
157
|
-
type: "code_line",
|
|
158
|
-
children: [
|
|
159
|
-
{
|
|
160
|
-
text: 'const variable = "DO_NOT_USE"',
|
|
161
|
-
},
|
|
162
|
-
],
|
|
163
|
-
},
|
|
164
|
-
],
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
type: "paywall",
|
|
168
|
-
children: [
|
|
169
|
-
{
|
|
170
|
-
type: "h2",
|
|
171
|
-
children: [
|
|
172
|
-
{
|
|
173
|
-
text: "Keep reading with a paid subscription",
|
|
174
|
-
},
|
|
175
|
-
],
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
type: "p",
|
|
179
|
-
children: [
|
|
180
|
-
{
|
|
181
|
-
text: "Subscribe to ",
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
text: "Soul Refiner",
|
|
185
|
-
italic: true,
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
text: " to keep reading this content.",
|
|
189
|
-
},
|
|
190
|
-
],
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
type: "button",
|
|
194
|
-
buttonType: "button-subscribe",
|
|
195
|
-
children: [
|
|
196
|
-
{
|
|
197
|
-
text: "Get Access",
|
|
198
|
-
},
|
|
199
|
-
],
|
|
200
|
-
},
|
|
201
|
-
],
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
type: "p",
|
|
205
|
-
children: [
|
|
206
|
-
{
|
|
207
|
-
text: "",
|
|
208
|
-
},
|
|
209
|
-
],
|
|
210
|
-
},
|
|
211
|
-
];
|
|
212
|
-
|
|
213
|
-
export const PLACEHOLDER = "This is a placeholder";
|
package/src/editor/index.ts
DELETED