mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 12:54:38 +03:00
Improved wall view for images (#3511)
* Proper masonry wall view for images * allow user to configure margin and direction
This commit is contained in:
@@ -35,6 +35,13 @@ import {
|
||||
ratingSystemIntlMap,
|
||||
RatingSystemType,
|
||||
} from "src/utils/rating";
|
||||
import {
|
||||
imageWallDirectionIntlMap,
|
||||
ImageWallDirection,
|
||||
defaultImageWallOptions,
|
||||
defaultImageWallDirection,
|
||||
defaultImageWallMargin,
|
||||
} from "src/utils/imageWall";
|
||||
import { defaultMaxOptionsShown } from "src/core/config";
|
||||
|
||||
const allMenuItems = [
|
||||
@@ -92,6 +99,24 @@ export const SettingsInterfacePanel: React.FC = () => {
|
||||
});
|
||||
}
|
||||
|
||||
function saveImageWallMargin(m: number) {
|
||||
saveUI({
|
||||
imageWallOptions: {
|
||||
...(ui.imageWallOptions ?? defaultImageWallOptions),
|
||||
margin: m,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function saveImageWallDirection(d: ImageWallDirection) {
|
||||
saveUI({
|
||||
imageWallOptions: {
|
||||
...(ui.imageWallOptions ?? defaultImageWallOptions),
|
||||
direction: d,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function saveRatingSystemType(t: RatingSystemType) {
|
||||
saveUI({
|
||||
ratingSystemOptions: {
|
||||
@@ -353,6 +378,31 @@ export const SettingsInterfacePanel: React.FC = () => {
|
||||
/>
|
||||
</SettingSection>
|
||||
|
||||
<SettingSection headingID="config.ui.image_wall.heading">
|
||||
<NumberSetting
|
||||
headingID="config.ui.image_wall.margin"
|
||||
subHeadingID="dialogs.imagewall.margin_desc"
|
||||
value={ui.imageWallOptions?.margin ?? defaultImageWallMargin}
|
||||
onChange={(v) => saveImageWallMargin(v)}
|
||||
/>
|
||||
|
||||
<SelectSetting
|
||||
id="image_wall_direction"
|
||||
headingID="config.ui.image_wall.direction"
|
||||
subHeadingID="dialogs.imagewall.direction.description"
|
||||
value={ui.imageWallOptions?.direction ?? defaultImageWallDirection}
|
||||
onChange={(v) => saveImageWallDirection(v as ImageWallDirection)}
|
||||
>
|
||||
{Array.from(imageWallDirectionIntlMap.entries()).map((v) => (
|
||||
<option key={v[0]} value={v[0]}>
|
||||
{intl.formatMessage({
|
||||
id: v[1],
|
||||
})}
|
||||
</option>
|
||||
))}
|
||||
</SelectSetting>
|
||||
</SettingSection>
|
||||
|
||||
<SettingSection headingID="config.ui.image_lightbox.heading">
|
||||
<NumberSetting
|
||||
headingID="config.ui.slideshow_delay.heading"
|
||||
|
||||
Reference in New Issue
Block a user