import React from "react"; import { __ } from "@wordpress/i18n"; import { RangeControl, ToggleControl } from "@wordpress/components"; import { validateNumericRange } from "../../../utils/security"; import { SliderAttributes } from "../../../types/slider"; import { UBSelectControl, ToolsPanelItemWrapper } from "../../shared"; interface NavigationSettingsProps { attributes: SliderAttributes; setAttributes: (attrs: Partial) => void; } export const NavigationSettings: React.FC = ({ attributes, setAttributes, }) => { return ( <> attributes.navigationType !== "bottom"} onDeselect={() => setAttributes({ navigationType: "bottom" })} isShownByDefault > setAttributes({ navigationType: value })} /> attributes.navigationPlacement !== "overlay"} onDeselect={() => setAttributes({ navigationPlacement: "overlay" })} > setAttributes({ navigationPlacement: value })} disabled={ attributes.navigationType === "top" || attributes.navigationType === "bottom" } /> attributes.navigationShape !== "circle"} onDeselect={() => setAttributes({ navigationShape: "circle" })} > setAttributes({ navigationShape: value })} /> attributes.navigationSize !== "medium"} onDeselect={() => setAttributes({ navigationSize: "medium" })} > setAttributes({ navigationSize: value })} /> attributes.navigationOpacity !== 1} onDeselect={() => setAttributes({ navigationOpacity: 1 })} > setAttributes({ navigationOpacity: validateNumericRange(value ?? 1, 0, 1, 1), }) } min={0} max={1} step={0.1} /> attributes.navigationVerticalPosition !== 20} onDeselect={() => setAttributes({ navigationVerticalPosition: 20 })} > setAttributes({ navigationVerticalPosition: validateNumericRange( value ?? 20, 0, 100, 20 ), }) } min={0} max={100} step={1} help={__( "Adjust the vertical position of the navigation arrows (in pixels)", "sliderberg" )} disabled={attributes.navigationType !== "split"} /> attributes.navigationHorizontalPosition !== 20} onDeselect={() => setAttributes({ navigationHorizontalPosition: 20 })} > setAttributes({ navigationHorizontalPosition: validateNumericRange( value ?? 20, 0, 100, 20 ), }) } min={0} max={100} step={1} help={__( "Adjust the horizontal position of the navigation arrows (in pixels)", "sliderberg" )} disabled={attributes.navigationType !== "split"} /> attributes.hideNavigation} onDeselect={() => setAttributes({ hideNavigation: false })} > setAttributes({ hideNavigation: value })} help={__("Hide the navigation arrow buttons", "sliderberg")} /> attributes.hideDots} onDeselect={() => setAttributes({ hideDots: false })} > setAttributes({ hideDots: value })} help={__("Hide the slide indicator dots", "sliderberg")} /> ); };