From b61b6a0b6a71c930e005d6a62ef6e5219e628854 Mon Sep 17 00:00:00 2001 From: rivanuff Date: Mon, 1 Sep 2025 11:58:44 +0200 Subject: [PATCH] feat(slider): checkbox to show pagination --- .../deprecated/core/src/slider/block.json | 4 ++ .../core/src/slider/components/inspector.js | 10 ++++- .../deprecated/core/src/slider/deprecated.js | 38 +++++++++++++++++++ packages/deprecated/core/src/slider/edit.js | 1 + packages/deprecated/core/src/slider/save.js | 2 + 5 files changed, 54 insertions(+), 1 deletion(-) diff --git a/packages/deprecated/core/src/slider/block.json b/packages/deprecated/core/src/slider/block.json index d993242..c8f1a4a 100644 --- a/packages/deprecated/core/src/slider/block.json +++ b/packages/deprecated/core/src/slider/block.json @@ -21,6 +21,10 @@ "slidesPerPageMobile": { "type": "number", "default": 1 + }, + "showPagination": { + "type": "boolean", + "default": true } } } diff --git a/packages/deprecated/core/src/slider/components/inspector.js b/packages/deprecated/core/src/slider/components/inspector.js index 39f24c4..026651c 100644 --- a/packages/deprecated/core/src/slider/components/inspector.js +++ b/packages/deprecated/core/src/slider/components/inspector.js @@ -1,7 +1,7 @@ /** * WordPress dependencies */ -import { RangeControl, PanelBody } from '@wordpress/components'; +import { RangeControl, PanelBody, ToggleControl } from '@wordpress/components'; import { InspectorControls } from '@wordpress/block-editor'; import { __ } from '@wordpress/i18n'; @@ -12,6 +12,7 @@ export default function Inspector( props ) { slidesPerPageLaptop, slidesPerPageTablet, slidesPerPageMobile, + showPagination, } = attributes; return ( @@ -69,6 +70,13 @@ export default function Inspector( props ) { min={ 1 } max={ 5 } /> + + setAttributes( { showPagination: value } ) + } + /> ); diff --git a/packages/deprecated/core/src/slider/deprecated.js b/packages/deprecated/core/src/slider/deprecated.js index ef765c8..b70dc33 100644 --- a/packages/deprecated/core/src/slider/deprecated.js +++ b/packages/deprecated/core/src/slider/deprecated.js @@ -15,6 +15,44 @@ const deprecated = [ className: 'yard-blocks-slider | splide', } ); + return ( +
+
+
    + +
+
+
+ ); + }, + }, + { + attributes: { + activeSlide: { + type: 'string', + }, + slidesPerPageDesktop: { + type: 'number', + default: 3 + }, + slidesPerPagLaptop: { + type: 'number', + default: 3 + }, + slidesPerPageTablet: { + type: 'number', + default: 2 + }, + slidesPerPageMobile: { + type: 'number', + default: 1 + }, + }, + save() { + const blockProps = useBlockProps.save( { + className: 'yard-blocks-slider | splide', + } ); + return (
diff --git a/packages/deprecated/core/src/slider/edit.js b/packages/deprecated/core/src/slider/edit.js index 9b25c38..ac87a12 100644 --- a/packages/deprecated/core/src/slider/edit.js +++ b/packages/deprecated/core/src/slider/edit.js @@ -40,6 +40,7 @@ const Edit = ( props ) => { 'data-slides-per-page-laptop': attributes.slidesPerPageLaptop, 'data-slides-per-page-tablet': attributes.slidesPerPageTablet, 'data-slides-per-page-mobile': attributes.slidesPerPageMobile, + 'data-show-pagination': attributes.showPagination, style: { padding: '1rem', }, diff --git a/packages/deprecated/core/src/slider/save.js b/packages/deprecated/core/src/slider/save.js index b09ad1b..330c3e3 100644 --- a/packages/deprecated/core/src/slider/save.js +++ b/packages/deprecated/core/src/slider/save.js @@ -9,6 +9,7 @@ const Save = ( { attributes } ) => { slidesPerPageLaptop, slidesPerPageTablet, slidesPerPageMobile, + showPagination, } = attributes; const blockProps = useBlockProps.save( { @@ -17,6 +18,7 @@ const Save = ( { attributes } ) => { 'data-slides-per-page-laptop': slidesPerPageLaptop, 'data-slides-per-page-tablet': slidesPerPageTablet, 'data-slides-per-page-mobile': slidesPerPageMobile, + 'data-show-pagination': showPagination, } ); return (