diff --git a/src/components/Media/Media.css b/src/components/Media/Media.css new file mode 100644 index 0000000..3102893 --- /dev/null +++ b/src/components/Media/Media.css @@ -0,0 +1,4 @@ +.media img, .media video { + max-width: 100%; + max-height: 100%; +} \ No newline at end of file diff --git a/src/components/MediaPreview/index.tsx b/src/components/Media/index.tsx similarity index 85% rename from src/components/MediaPreview/index.tsx rename to src/components/Media/index.tsx index f694d38..e37f14f 100644 --- a/src/components/MediaPreview/index.tsx +++ b/src/components/Media/index.tsx @@ -2,6 +2,8 @@ import React, {FunctionComponent} from "react"; import {MediaFile} from "../../database/file"; import {MediaFileType} from "../../database/file-type"; +import "./Media.css" + export type MediaPreviewProps = { basePath: string, file: MediaFile @@ -11,19 +13,19 @@ const MediaPreview: FunctionComponent = ({basePath, file}) => switch (file.getType()) { case MediaFileType.unknown: return ( -
+
unknown file type
) case MediaFileType.video: return ( -
+
videos not yet supported
) case MediaFileType.image: return ( -
+
{file.getPath()}
) diff --git a/src/components/MediaDetails/index.tsx b/src/components/MediaDetails/index.tsx index 9f04d32..29cbac1 100644 --- a/src/components/MediaDetails/index.tsx +++ b/src/components/MediaDetails/index.tsx @@ -1,6 +1,6 @@ import React, {FunctionComponent, useEffect, useState} from "react"; import {MediaFile} from "../../database/file"; -import MediaPreview from "../MediaPreview"; +import MediaPreview from "../Media"; import Autocomplete from "../Autocomplete"; export type MediaDetailsProps = { diff --git a/src/components/MediaList/MediaList.css b/src/components/MediaList/MediaList.css new file mode 100644 index 0000000..43ac848 --- /dev/null +++ b/src/components/MediaList/MediaList.css @@ -0,0 +1,4 @@ +.media-list { + display: flex; + flex-wrap: wrap; +} \ No newline at end of file diff --git a/src/components/MediaList/index.tsx b/src/components/MediaList/index.tsx index 93d4120..d4de3d9 100644 --- a/src/components/MediaList/index.tsx +++ b/src/components/MediaList/index.tsx @@ -4,6 +4,8 @@ import MediaListItem from "../MediaListItem"; import {Query} from "../../database/query"; import PageControl from "../PageControl"; +import "./MediaList.css" + const pageLimit = 10 export type MediaListProps = { @@ -31,11 +33,13 @@ const MediaList: FunctionComponent = ({basePath, query, onSelect { size > 0 && <> - { - files.map(f => ( - - )) - } +
+ { + files.map(f => ( + + )) + } +
} diff --git a/src/components/MediaListItem/MediaListItem.css b/src/components/MediaListItem/MediaListItem.css new file mode 100644 index 0000000..3ef6aba --- /dev/null +++ b/src/components/MediaListItem/MediaListItem.css @@ -0,0 +1,6 @@ +.media-list-item { + width: 150px; + height: 150px; + margin: 10px; + cursor: pointer; +} \ No newline at end of file diff --git a/src/components/MediaListItem/index.tsx b/src/components/MediaListItem/index.tsx index d0daf94..5062083 100644 --- a/src/components/MediaListItem/index.tsx +++ b/src/components/MediaListItem/index.tsx @@ -1,6 +1,8 @@ import React, {FunctionComponent} from "react"; import {MediaFile} from "../../database/file"; -import MediaPreview from "../MediaPreview"; +import MediaPreview from "../Media"; + +import "./MediaListItem.css" export type MediaListItemProps = { basePath: string, @@ -10,7 +12,7 @@ export type MediaListItemProps = { const MediaListItem: FunctionComponent = ({basePath, file, onClick}) => { return ( -
onClick(file)}> +
onClick(file)} className="media-list-item">
) diff --git a/src/components/PageControl/PageControl.css b/src/components/PageControl/PageControl.css new file mode 100644 index 0000000..407677c --- /dev/null +++ b/src/components/PageControl/PageControl.css @@ -0,0 +1,3 @@ +.page-control { + width: 100%; +} \ No newline at end of file diff --git a/src/components/PageControl/index.tsx b/src/components/PageControl/index.tsx index a6001c0..3699b4f 100644 --- a/src/components/PageControl/index.tsx +++ b/src/components/PageControl/index.tsx @@ -1,5 +1,7 @@ import React, {FunctionComponent} from "react"; +import "./PageControl.css" + export type PageControlProps = { current: number, max: number, @@ -8,7 +10,7 @@ export type PageControlProps = { const PageControl: FunctionComponent = ({current, max, onChange}) => { return ( -
+
- - - } - { !selected && showUntagged && - <> -

Untagged

- - { untagged.map(u => new MediaFile(u)).map(u => ( -
{ - setSelected(u) - }} - key={u.getPath()} - > - -
- ))} - - } - { !selected && !showUntagged && - <> - { untagged.length > 0 && - setShowUntagged(true) } - > - {untagged.length} untagged files - - } - - - } +
+ { selected && + <> + + + + } + { !selected && showUntagged && + <> +

Untagged

+ + { untagged.map(u => new MediaFile(u)).map(u => ( +
{ + setSelected(u) + }} + key={u.getPath()} + > + +
+ ))} + + } + { !selected && !showUntagged && + <> + { untagged.length > 0 && + setShowUntagged(true) } + > + {untagged.length} untagged files + + } + + + } +
}