diff --git a/frontend/src/Components/ImagePicker/ImagePicker.module.scss b/frontend/src/Components/ImagePicker/ImagePicker.module.scss index b0c1ba438..b44d30fc3 100644 --- a/frontend/src/Components/ImagePicker/ImagePicker.module.scss +++ b/frontend/src/Components/ImagePicker/ImagePicker.module.scss @@ -37,35 +37,31 @@ max-height: 25em; overflow-y: scroll; display: flex; - flex-direction: row; - justify-content: center; + flex-direction: column; + justify-content: flex-start; flex-wrap: wrap; - gap: 0.5em; - margin: 0 auto; + gap: 1em; + margin-top: 1em; + + @include for-tablet-up { + flex-direction: row; + } } -.image { - @include rounded; - @include shadow-light; - width: 10em; - height: 8em; - background-color: $grey-1; - background-size: cover; - background-position: center; - border: 3px solid transparent; - transition: 0.2s; - transform: scale(0.9); - cursor: pointer; +.image_box { + overflow: hidden; + flex-basis: calc(25% - 1em); + min-height: 12em; + height: 12em; + box-sizing: inherit; - &:hover { - filter: brightness(110%); + @include for-tablet-down { + flex-basis: calc(33.33% - 1em); } +} - &.selected_image { - box-shadow: 0 0 25px 5px rgba(143, 181, 238, 0.625); - border: 3px solid $blue; - transform: scale(1); - } +.image_box_selected { + border: none; } .search_wrapper { diff --git a/frontend/src/Components/ImagePicker/ImagePicker.tsx b/frontend/src/Components/ImagePicker/ImagePicker.tsx index 16f58b078..139a67f88 100644 --- a/frontend/src/Components/ImagePicker/ImagePicker.tsx +++ b/frontend/src/Components/ImagePicker/ImagePicker.tsx @@ -1,8 +1,8 @@ import { Icon } from '@iconify/react'; import { keepPreviousData, useQuery } from '@tanstack/react-query'; -import classNames from 'classnames'; import { type ReactNode, useCallback, useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; +import { ImageTile } from '~/Components/ImageTile'; import { getImagesPaginated } from '~/api'; import { BACKEND_DOMAIN } from '~/constants'; import type { ImageDto } from '~/dto'; @@ -62,12 +62,13 @@ export function ImagePicker({ onSelected, selectedImage }: ImagePickerProps) { function renderImage(image: ImageDto): ReactNode { const isSelected = selected?.id === image.id; return ( - + ); + } + + return ( +
+ +
+ ); +} diff --git a/frontend/src/Components/ImageTile/index.ts b/frontend/src/Components/ImageTile/index.ts new file mode 100644 index 000000000..949452f44 --- /dev/null +++ b/frontend/src/Components/ImageTile/index.ts @@ -0,0 +1 @@ +export { ImageTile } from './ImageTile'; diff --git a/frontend/src/Components/index.ts b/frontend/src/Components/index.ts index 1ffd6c92e..dd997c73d 100644 --- a/frontend/src/Components/index.ts +++ b/frontend/src/Components/index.ts @@ -34,6 +34,7 @@ export { IconButton } from './IconButton'; export { Image } from './Image'; export { ImageCard } from './ImageCard'; export { ImageList } from './ImageList'; +export { ImageTile } from './ImageTile'; export { ImageQuery } from './ImageQuery'; export { Input, type InputProps } from './Input'; export { InputField } from './InputField'; diff --git a/frontend/src/PagesAdmin/ImageAdminPage/components/AdminImage/AdminImage.module.scss b/frontend/src/PagesAdmin/ImageAdminPage/components/AdminImage/AdminImage.module.scss deleted file mode 100644 index c24f1ff3e..000000000 --- a/frontend/src/PagesAdmin/ImageAdminPage/components/AdminImage/AdminImage.module.scss +++ /dev/null @@ -1,34 +0,0 @@ -@use 'src/constants' as *; - -@use 'src/mixins' as *; - -.imageContainer { - @include rounded; - @include shadow-light; - overflow: hidden; - background-repeat: no-repeat; - background-position: center; - background-size: cover; - transition: 0.2s; - &:hover { - transform: scale(1.02); - } -} - -.imageTitle { - color: $white; - text-align: center; - min-height: 2em; - .text { - font-size: 1.2em; - padding: 0.2em; - background-color: $black; - text-decoration: none; - } - .tags { - font-size: 0.8em; - padding: 0.4em; - background-color: $black-t75; - text-decoration: none; - } -} diff --git a/frontend/src/PagesAdmin/ImageAdminPage/components/AdminImage/AdminImage.tsx b/frontend/src/PagesAdmin/ImageAdminPage/components/AdminImage/AdminImage.tsx index 4b33c6968..badd60669 100644 --- a/frontend/src/PagesAdmin/ImageAdminPage/components/AdminImage/AdminImage.tsx +++ b/frontend/src/PagesAdmin/ImageAdminPage/components/AdminImage/AdminImage.tsx @@ -1,8 +1,5 @@ -import classNames from 'classnames'; -import { BACKEND_DOMAIN } from '~/constants'; +import { ImageTile } from '~/Components'; import type { ImageDto } from '~/dto'; -import { backgroundImageFromUrl } from '~/utils'; -import styles from './AdminImage.module.scss'; type AdminImageProps = { image: ImageDto; @@ -10,20 +7,5 @@ type AdminImageProps = { }; export function AdminImage({ image, className }: AdminImageProps) { - const TAGS = image.tags - .map((tag) => { - return ` ${tag.name}`; - }) - .toString(); - return ( -
-
-

{image.title}

-

{TAGS}

-
-
- ); + return ; }