diff --git a/docs/templates/README.md b/docs/templates/README.md index 6493754b..962887bf 100644 --- a/docs/templates/README.md +++ b/docs/templates/README.md @@ -22,4 +22,8 @@ title: Templates

# Castform

+
+

# Glalie

+ +
diff --git a/docs/templates/images/Glalie.png b/docs/templates/images/Glalie.png new file mode 100644 index 00000000..cd69f7ed Binary files /dev/null and b/docs/templates/images/Glalie.png differ diff --git a/package-lock.json b/package-lock.json index 8f50a732..19b4d175 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13943,6 +13943,14 @@ "scheduler": "^0.19.1" } }, + "react-easy-panzoom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/react-easy-panzoom/-/react-easy-panzoom-0.4.4.tgz", + "integrity": "sha512-1zgT6boDVPcrR3Egcz8KEVpM3fs50o22iIWPRlAqvev0/4nw5RnUNFsvmOJ/b5M2nd8MDGknLmyfBdhjoLB6+g==", + "requires": { + "warning": "4.0.3" + } + }, "react-error-overlay": { "version": "6.0.7", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", @@ -17121,6 +17129,14 @@ "makeerror": "1.0.x" } }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "watchpack": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", diff --git a/package.json b/package.json index 71ca1f9c..8869fd60 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "postcss-cli": "^7.1.0", "react": "^16.13.1", "react-dom": "^16.13.1", + "react-easy-panzoom": "^0.4.4", "react-i18next": "^11.3.4", "react-markdown": "^4.3.1", "react-scripts": "3.4.1", diff --git a/src/components/App/App.js b/src/components/App/App.js index 3ebb99a7..761ee40f 100644 --- a/src/components/App/App.js +++ b/src/components/App/App.js @@ -1,5 +1,6 @@ import React, { useRef, useEffect, useContext, Suspense } from 'react'; import { useTranslation } from 'react-i18next'; +import { PanZoom } from 'react-easy-panzoom'; import AppContext from '../../context/AppContext'; import PageContext from '../../context/PageContext'; @@ -8,9 +9,11 @@ import LeftSidebar from '../LeftSidebar/LeftSidebar'; import RightSidebar from '../RightSidebar/RightSidebar'; import templates from '../../templates'; +import PageController from '../../shared/PageController'; const App = () => { const pageRef = useRef(null); + const panZoomRef = useRef(null); const { i18n } = useTranslation(); const context = useContext(AppContext); @@ -18,24 +21,38 @@ const App = () => { const { theme, settings } = state; const pageContext = useContext(PageContext); - const { setPageElement } = pageContext; + const { setPageRef, setPanZoomRef } = pageContext; useEffect(() => { - setPageElement(pageRef); + setPageRef(pageRef); + setPanZoomRef(panZoomRef); i18n.changeLanguage(settings.language); const storedState = JSON.parse(localStorage.getItem('state')); dispatch({ type: 'import_data', payload: storedState }); - }, [dispatch, setPageElement, i18n, settings.language]); + }, [dispatch, setPageRef, setPanZoomRef, i18n, settings.language]); return ( -
+
-
-
- {templates.find(x => theme.layout.toLowerCase() === x.key).component()} -
+
+ +
+ {templates.find(x => theme.layout.toLowerCase() === x.key).component()} +
+
+ +
diff --git a/src/components/LeftSidebar/tabs/Awards.js b/src/components/LeftSidebar/tabs/Awards.js index 2b9a61c6..1e584f79 100644 --- a/src/components/LeftSidebar/tabs/Awards.js +++ b/src/components/LeftSidebar/tabs/Awards.js @@ -13,7 +13,6 @@ import AddItemButton from '../../../shared/AddItemButton'; import ItemHeading from '../../../shared/ItemHeading'; const AwardsTab = ({ data, onChange }) => { - const { t } = useTranslation(); const context = useContext(AppContext); const { dispatch } = context; @@ -28,7 +27,7 @@ const AwardsTab = ({ data, onChange }) => {
onChange('data.awards.heading', v)} /> @@ -62,7 +61,7 @@ const Form = ({ item, onChange, identifier = '' }) => { onChange(`${identifier}title`, v)} /> @@ -70,7 +69,7 @@ const Form = ({ item, onChange, identifier = '' }) => { onChange(`${identifier}subtitle`, v)} /> @@ -78,7 +77,6 @@ const Form = ({ item, onChange, identifier = '' }) => {