diff --git a/ui/v2.5/src/components/Groups/GroupDetails/Group.tsx b/ui/v2.5/src/components/Groups/GroupDetails/Group.tsx index 0aa4dbd5472..913b2bc52c7 100644 --- a/ui/v2.5/src/components/Groups/GroupDetails/Group.tsx +++ b/ui/v2.5/src/components/Groups/GroupDetails/Group.tsx @@ -21,7 +21,7 @@ import { GroupDetailsPanel, } from "./GroupDetailsPanel"; import { GroupEditPanel } from "./GroupEditPanel"; -import { faTrashAlt } from "@fortawesome/free-solid-svg-icons"; +import { faRefresh, faTrashAlt } from "@fortawesome/free-solid-svg-icons"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { ConfigurationContext } from "src/hooks/Config"; import { DetailImage } from "src/components/Shared/DetailImage"; @@ -39,8 +39,9 @@ import { TabTitleCounter, useTabKey, } from "src/components/Shared/DetailsPage/Tabs"; -import { Tab, Tabs } from "react-bootstrap"; +import { Button, Tab, Tabs } from "react-bootstrap"; import { GroupSubGroupsPanel } from "./GroupSubGroupsPanel"; +import { Icon } from "src/components/Shared/Icon"; const validTabs = ["default", "scenes", "subgroups"] as const; type TabKey = (typeof validTabs)[number]; @@ -130,6 +131,8 @@ const GroupPage: React.FC = ({ group, tabKey }) => { const showAllDetails = uiConfig?.showAllDetails ?? true; const abbreviateCounter = uiConfig?.abbreviateCounters ?? false; + const [focusedOnFront, setFocusedOnFront] = useState(true); + const [collapsed, setCollapsed] = useState(!showAllDetails); const loadStickyHeader = useLoadStickyHeader(); @@ -328,7 +331,13 @@ const GroupPage: React.FC = ({ group, tabKey }) => {
{!!activeFrontImage && ( - + )} {!!activeBackImage && ( @@ -336,9 +345,23 @@ const GroupPage: React.FC = ({ group, tabKey }) => { images={lightboxImages} index={lightboxImages.length - 1} > - + )} + {!!(activeFrontImage && activeBackImage) && ( + + )}
diff --git a/ui/v2.5/src/components/Groups/styles.scss b/ui/v2.5/src/components/Groups/styles.scss index 927cd38a0ac..dd159ff21d1 100644 --- a/ui/v2.5/src/components/Groups/styles.scss +++ b/ui/v2.5/src/components/Groups/styles.scss @@ -104,6 +104,62 @@ } } +button.flip { + display: none; +} + +#group-page .detail-header:not(.collapsed) { + .group-images { + padding: 0.375rem 0.75rem; + position: relative; + z-index: 1; + + button.btn-link { + padding: 0; + position: relative; + transition: all 0.3s; + z-index: 1; + } + + button:has(.active) { + z-index: 2; + } + + button:has(.inactive) { + opacity: 0.5; + padding: 0; + transform: rotateY(180deg); + } + + button.flip { + align-items: center; + border-radius: 50%; + bottom: -5px; + display: flex; + font-size: 20px; + height: 40px; + justify-content: center; + padding: 0; + position: absolute; + right: -5px; + width: 40px; + z-index: 2; + } + + img.active { + max-width: 22rem; + } + + img.inactive { + display: none; + } + } + + .detail-item .detail-item-title { + width: 150px; + } +} + .groups-list { list-style-type: none; padding-inline-start: 0;