diff --git a/frontend/build/webpack.config.js b/frontend/build/webpack.config.js index e1566a75c..1549962e4 100644 --- a/frontend/build/webpack.config.js +++ b/frontend/build/webpack.config.js @@ -223,7 +223,6 @@ module.exports = (env) => { { loader: 'url-loader', options: { - limit: 24096, mimetype: 'application/font-woff', emitFile: false, name: 'Content/Fonts/[name].[ext]' @@ -233,12 +232,11 @@ module.exports = (env) => { }, { - test: /\.(ttf|eot|eot?#iefix|gif|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, + test: /\.(ttf|eot|eot?#iefix|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, use: [ { loader: 'file-loader', options: { - limit: 24096, emitFile: false, name: 'Content/Fonts/[name].[ext]' } diff --git a/frontend/src/Collection/Overview/CollectionOverview.js b/frontend/src/Collection/Overview/CollectionOverview.js index f45004614..9b0aeef49 100644 --- a/frontend/src/Collection/Overview/CollectionOverview.js +++ b/frontend/src/Collection/Overview/CollectionOverview.js @@ -2,6 +2,8 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import Slider from 'react-slick'; import TextTruncate from 'react-text-truncate'; +import { Navigation } from 'swiper'; +import { Swiper, SwiperSlide } from 'swiper/react'; import EditCollectionModalConnector from 'Collection/Edit/EditCollectionModalConnector'; import CheckInput from 'Components/Form/CheckInput'; import Icon from 'Components/Icon'; @@ -17,8 +19,9 @@ import CollectionMovieConnector from './CollectionMovieConnector'; import CollectionMovieLabelConnector from './CollectionMovieLabelConnector'; import styles from './CollectionOverview.css'; -import 'slick-carousel/slick/slick.css'; -import 'slick-carousel/slick/slick-theme.css'; +// Import Swiper styles +import 'swiper/css'; +import 'swiper/css/navigation'; const columnPadding = parseInt(dimensions.movieIndexColumnPadding); const columnPaddingSmallScreen = parseInt(dimensions.movieIndexColumnPaddingSmallScreen); @@ -52,8 +55,12 @@ class CollectionOverview extends Component { // // Control - setSliderRef = (ref) => { - this.setState({ slider: ref }); + setSliderPrevRef = (ref) => { + this._swiperPrevRef = ref; + }; + + setSliderNextRef = (ref) => { + this._swiperNextRef = ref; }; // @@ -120,15 +127,6 @@ class CollectionOverview extends Component { const contentHeight = getContentHeight(rowHeight, isSmallScreen); const overviewHeight = contentHeight - titleRowHeight - posterHeight; - const sliderSettings = { - arrows: false, - dots: false, - infinite: false, - slidesToShow: 1, - slidesToScroll: 1, - variableWidth: true - }; - return (
@@ -166,19 +164,21 @@ class CollectionOverview extends Component { { showPosters &&
- + + + - + + +
} @@ -270,9 +270,23 @@ class CollectionOverview extends Component { { showPosters ?
- + { + swiper.params.navigation.prevEl = this._swiperPrevRef; + swiper.params.navigation.nextEl = this._swiperNextRef; + swiper.navigation.init(); + swiper.navigation.update(); + }} + > {movies.map((movie) => ( -
+ -
+ ))} -
+
:
{movies.map((movie) => ( diff --git a/package.json b/package.json index bfa20e3a1..163ee3e12 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,7 @@ "react-document-title": "2.0.3", "react-dom": "17.0.2", "react-focus-lock": "2.5.0", - "react-slick": "0.28.1", - "slick-carousel": "1.8.1", + "swiper": "8.3.2", "react-google-recaptcha": "2.1.0", "react-lazyload": "3.2.0", "react-measure": "1.4.7", diff --git a/yarn.lock b/yarn.lock index 11f20d4a6..238f4e1f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2221,7 +2221,7 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@2.3.1, classnames@^2.2.5: +classnames@2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== @@ -2756,6 +2756,13 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" +dom7@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/dom7/-/dom7-4.0.4.tgz#8b68c5d8e5e2ed0fddb1cb93e433bc9060c8f3fb" + integrity sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw== + dependencies: + ssr-window "^4.0.0" + domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" @@ -2820,11 +2827,6 @@ enhanced-resolve@^5.8.3: graceful-fs "^4.2.4" tapable "^2.2.0" -enquire.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" - integrity sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw== - entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" @@ -4294,13 +4296,6 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json2mq@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" - integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== - dependencies: - string-convert "^0.2.0" - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -5700,17 +5695,6 @@ react-side-effect@^1.0.2: dependencies: shallowequal "^1.0.1" -react-slick@0.28.1: - version "0.28.1" - resolved "https://registry.yarnpkg.com/react-slick/-/react-slick-0.28.1.tgz#12c18d991b59432df9c3757ba540a227b3fb85b9" - integrity sha512-JwRQXoWGJRbUTE7eZI1rGIHaXX/4YuwX6gn7ulfvUZ4vFDVQAA25HcsHSYaUiRCduTr6rskyIuyPMpuG6bbluw== - dependencies: - classnames "^2.2.5" - enquire.js "^2.1.6" - json2mq "^0.2.0" - lodash.debounce "^4.0.8" - resize-observer-polyfill "^1.5.0" - react-slider@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/react-slider/-/react-slider-1.1.4.tgz#08b55f9be3e04cc10ae00cc3aedb6891dffe9bf3" @@ -5988,7 +5972,7 @@ reselect@4.0.0: resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== -resize-observer-polyfill@^1.4.1, resize-observer-polyfill@^1.5.0: +resize-observer-polyfill@^1.4.1: version "1.5.1" resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== @@ -6270,11 +6254,6 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -slick-carousel@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/slick-carousel/-/slick-carousel-1.8.1.tgz#a4bfb29014887bb66ce528b90bd0cda262cc8f8d" - integrity sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA== - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -6387,6 +6366,11 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +ssr-window@^4.0.0, ssr-window@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-4.0.2.tgz#dc6b3ee37be86ac0e3ddc60030f7b3bc9b8553be" + integrity sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ== + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -6403,11 +6387,6 @@ streamqueue@1.1.2: isstream "^0.1.2" readable-stream "^2.3.3" -string-convert@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" - integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== - string-template@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" @@ -6625,6 +6604,14 @@ svg-tags@^1.0.0: resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== +swiper@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/swiper/-/swiper-8.3.2.tgz#55a2637125b0514e58715aa51e040dc070203b47" + integrity sha512-8wsC7ORYvVSnLUoxs2+xmfLrDPNjBVQXMCFbOlqtHeON6wtu/blOyySDr8TCBCdse1bdcIbn7m8xJNxVFL8o4Q== + dependencies: + dom7 "^4.0.4" + ssr-window "^4.0.2" + table@^6.8.0: version "6.8.0" resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca"