Skip to content

Commit d10c360

Browse files
Media (#24)
* checkout * started media explorer? * icons in directory * icons appear on hover * added grid to media object list * edit handling * changed mediaobjectmenu to functional component * added folder select * set up refs for outside click cancelling rename * added enter shortcut for renaming * removed checkmarks * added delete confirm * fixed bug * fixed child folder select * blocked select on rename * display * styling * styling * started breadcrumb (error) * breadcrumb * fixed breadcrumb * started connecting redux * started media object redux * redux * redux * added console logging
1 parent 7648ffe commit d10c360

File tree

5 files changed

+30
-20
lines changed

5 files changed

+30
-20
lines changed

src/components/content-documents/ContentDocumentEdit.tsx

-6
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,13 @@ import * as React from "react";
22

33
import { useParams, useHistory } from "react-router-dom";
44

5-
65
import { IContentDocument, IObjectModel } from 'models';
76

8-
9-
107
import HtmlSettingsTab from './ContentDocumentTabs/HtmlSettingsTab';
118
import MetaSettingsTab from './ContentDocumentTabs/MetaSettingsTab';
129

1310
import { Tab } from 'semantic-ui-react';
1411

15-
16-
1712
interface IRouteParams {
1813
id: string;
1914
}
@@ -45,7 +40,6 @@ const ContentDocumentEdit: React.FC<IContentDocumentEditProps> = ({ contentDocum
4540
{
4641
menuItem: 'Meta Properties',
4742
render: () => <MetaSettingsTab onPropertyUpdate={onValueChange} objectModels={[...objectModels.values()]} contentDocument={contentDocument} />
48-
4943
}
5044
]
5145
} />);

src/components/media-objects/MediaObjectMenu.tsx

+6-3
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@ interface IMediaObjectMenuProps extends RouteComponentProps {
1414
mediaObjects: IMediaObject[];
1515
selectedMediaObjectId: string;
1616
setSelectedMediaObject(id: string): void;
17+
editMediaObject(mediaObjects: Map<string, IMediaObject>): void
18+
deleteMediaObject(mediaObjects: Map<string, IMediaObject>): void;
1719
}
1820

1921
const MediaObjectMenu: React.FC<IMediaObjectMenuProps> = ({ mediaObjects, selectedMediaObjectId, setSelectedMediaObject }) => {
2022

2123
const [editField, setEditField] = React.useState("");
2224
const [editFieldValue, setEditFieldValue] = React.useState("");
2325
const [dialog, confirm] = React.useState<IConfirmDialogProps>();
26+
const [mediaObject, updateMediaObject] = React.useState<IMediaObject>();
2427

2528
React.useEffect(() => {
2629
document.addEventListener("mousedown", handleClick);
@@ -38,6 +41,7 @@ const MediaObjectMenu: React.FC<IMediaObjectMenuProps> = ({ mediaObjects, select
3841
}
3942
}
4043
setEditField("");
44+
// editMediaObject(new Map([...mediaObjects]);
4145
};
4246

4347
const editButtonHandler = React.useCallback(
@@ -47,15 +51,14 @@ const MediaObjectMenu: React.FC<IMediaObjectMenuProps> = ({ mediaObjects, select
4751
}, [])
4852

4953
const deleteButtonHandler = React.useCallback((mediaObject) => {
50-
console.log("delete");
5154
confirm({
5255
message: "Are you sure you want to delete " + mediaObject.name + "?",
5356
confirmAction: () => {
54-
setEditField("");
57+
console.log("delete " + mediaObject.name);
58+
// deleteMediaObject(new Map([...mediaObjects]);
5559
confirm(undefined);
5660
},
5761
cancelAction: () => {
58-
setEditField("");
5962
confirm(undefined);
6063
},
6164
});

src/components/media-objects/media-object-list.tsx

+9-6
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,16 @@ interface IMediaObjectListProps {
1717
mediaObjects: IMediaObject[];
1818
selectedMediaObjectId: string;
1919
setSelectedMediaObject(id: string): void;
20+
editMediaObject(mediaObjects: Map<string, IMediaObject>): void
21+
deleteMediaObject(mediaObjects: Map<string, IMediaObject>): void;
2022
}
2123

22-
const MediaObjectList: React.FC<IMediaObjectListProps> = ({ mediaObjects, selectedMediaObjectId, setSelectedMediaObject }) => {
24+
const MediaObjectList: React.FC<IMediaObjectListProps> = ({ mediaObjects, selectedMediaObjectId, setSelectedMediaObject, editMediaObject, deleteMediaObject }) => {
2325

2426
const [editField, setEditField] = React.useState(-1);
2527
const [editFieldValue, setEditFieldValue] = React.useState("");
2628
const [dialog, confirm] = React.useState<IConfirmDialogProps>();
29+
const [mediaObject, updateMediaObject] = React.useState<IMediaObject>();
2730

2831
React.useEffect(() => {
2932
document.addEventListener("mousedown", handleClick);
@@ -40,7 +43,8 @@ const MediaObjectList: React.FC<IMediaObjectListProps> = ({ mediaObjects, select
4043
return;
4144
}
4245
}
43-
setEditField(-1)
46+
setEditField(-1);
47+
// editMediaObject(new Map([...mediaObjects]);
4448
};
4549

4650
const editButtonHandler = React.useCallback(
@@ -50,15 +54,14 @@ const MediaObjectList: React.FC<IMediaObjectListProps> = ({ mediaObjects, select
5054
}, [])
5155

5256
const deleteButtonHandler = React.useCallback((index, object) => {
53-
console.log("delete");
5457
confirm({
5558
message: "Are you sure you want to delete " + object.name + "?",
5659
confirmAction: () => {
57-
setEditField(-1);
60+
console.log("delete " + object.name);
61+
// deleteMediaObject(new Map([...mediaObjects]);
5862
confirm(undefined);
5963
},
6064
cancelAction: () => {
61-
setEditField(-1);
6265
confirm(undefined);
6366
},
6467
});
@@ -69,7 +72,7 @@ const MediaObjectList: React.FC<IMediaObjectListProps> = ({ mediaObjects, select
6972
{dialog && <ConfirmDialog {...dialog} />}
7073
<MediaObjectToolbar mediaObjects={mediaObjects} selectedMediaObjectId={selectedMediaObjectId} />
7174
<Sidebar.Pushable as={Segment} className="workspace" attached={true}>
72-
<MediaObjectMenu mediaObjects={mediaObjects} selectedMediaObjectId={selectedMediaObjectId} setSelectedMediaObject={setSelectedMediaObject} />
75+
<MediaObjectMenu mediaObjects={mediaObjects} selectedMediaObjectId={selectedMediaObjectId} setSelectedMediaObject={setSelectedMediaObject} editMediaObject={editMediaObject} deleteMediaObject={deleteMediaObject} />
7376
<Sidebar.Pusher>
7477
<AppContent>
7578
{mediaObjects.length === 0 ? (

src/models/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ export interface IContentDocument {
2828
htmlProperties: IDocumentProperty[];
2929
metaProperties: IDocumentProperty[];
3030
}
31-
3231
export interface IMediaObject {
3332
id: string;
3433
objectType: IMediaObjectType;

src/pages/media-objects.tsx

+15-4
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,34 @@
11
import React from 'react';
22
import { useSelector, useDispatch } from 'react-redux';
3+
import { IMediaObject } from 'models';
34

45
import { IAppState } from 'store/State';
5-
import { SELECT_MEDIA_OBJECT } from 'store/actions/MediaObject';
6+
import { SELECT_MEDIA_OBJECT, EDIT_MEDIA_OBJECT, DELETE_MEDIA_OBJECT } from 'store/actions/MediaObject';
67

78
import Layout from 'components/layout';
89
import MediaObjectList from 'components/media-objects/media-object-list';
910

10-
11-
1211
const MediaObjectsPage: React.FC = () => {
12+
1313
const { mediaObjects, selectedMediaObjectId } = useSelector((appState: IAppState) => appState.mediaObject);
1414

15+
const [mediaObject, updateMediaObject] = React.useState<IMediaObject>();
16+
1517
const dispatch = useDispatch();
1618

1719
const selectMediaObject = React.useCallback((mediaObjectId: string) => dispatch({ type: SELECT_MEDIA_OBJECT, selectedMediaObjectId: mediaObjectId }), [dispatch]);
1820

21+
const editMediaObject = React.useCallback((mediaObjects: Map<string, IMediaObject>) => dispatch({ type: EDIT_MEDIA_OBJECT, mediaObjects: mediaObjects }), [dispatch]);
22+
23+
const deleteMediaObject = React.useCallback((mediaObjects: Map<string, IMediaObject>) => {
24+
if (mediaObject) {
25+
mediaObjects.delete(mediaObject.id);
26+
dispatch({ type: DELETE_MEDIA_OBJECT, mediaObjects: mediaObjects });
27+
}
28+
}, [dispatch]);
29+
1930
return (<Layout>
20-
<MediaObjectList mediaObjects={[...mediaObjects.values()]} selectedMediaObjectId={selectedMediaObjectId} setSelectedMediaObject={selectMediaObject} />
31+
<MediaObjectList mediaObjects={[...mediaObjects.values()]} selectedMediaObjectId={selectedMediaObjectId} editMediaObject={editMediaObject} deleteMediaObject={deleteMediaObject} setSelectedMediaObject={selectMediaObject} />
2132
</Layout>)
2233
}
2334

0 commit comments

Comments
 (0)