+ return (
+ <>
+ {toggleButton(true)}
+ Fehler: {props.installError}
+ >
+ )
}
return null
diff --git a/src/containers/app.jsx b/src/containers/app.jsx
index b9131fe4c..815573b2a 100644
--- a/src/containers/app.jsx
+++ b/src/containers/app.jsx
@@ -31,6 +31,7 @@ import Menu from './menu.jsx'
import WelcomeScreen from './welcome-screen.jsx'
import LazyRender from './lazy-render.jsx'
import Content from './content.jsx'
+import OfflineModus from './offline-modus.jsx'
import MobileScreenFallback from './mobile-screen-fallback.jsx'
addLocaleData(de)
@@ -174,6 +175,8 @@ class App extends Component {
return
case Views.content:
return
+ case Views.offline:
+ return
case Views.welcome:
return
case Views.menu:
diff --git a/src/containers/offline-modus.jsx b/src/containers/offline-modus.jsx
new file mode 100644
index 000000000..3d2864dff
--- /dev/null
+++ b/src/containers/offline-modus.jsx
@@ -0,0 +1,94 @@
+import React, { useEffect } from 'react'
+
+import betaLogo from '../../assets/img/beta_header_sans.png'
+import styles from '../css/offline.css'
+
+import '../css/defaults.css'
+import ButtonComponent from '../components/button/button.jsx'
+import { useState } from 'react'
+import { localStorageKey } from '../lib/feature-flags'
+import { FEATURE_OFFLINE } from '../lib/feature-flags'
+import { useCallback } from 'react'
+import Modal from './modal.jsx'
+import { setEnabled } from '../reducers/offline'
+import OfflineSupport from '../components/offline-support/offline-support.jsx'
+import { useDispatch, useSelector } from 'react-redux'
+
+const OfflineModus = () => {
+ const dispatch = useDispatch()
+ const offlineState = useSelector((state) => state.scratchGui.offline)
+ const modusKey = localStorageKey(FEATURE_OFFLINE)
+ const initState = Boolean(localStorage.getItem(modusKey))
+ const [modusActivated, setModusActivated] = useState(initState)
+
+ const toggleOfflineModus = useCallback(() => {
+ modusActivated ? localStorage.removeItem(modusKey) : localStorage.setItem(modusKey, 'true')
+ setModusActivated((prevState) => !prevState)
+ }, [setModusActivated]
+ )
+
+ // TODO: implement this in offline-support component
+
+ const activateButton = (
+
+ Offlinemodus aktivieren
+
+ )
+
+ useEffect(() => {
+ console.log("state chaged", offlineState)
+
+ // if (!offlineState.enabled) {
+ // localStorage.removeItem(modusKey)
+ // } else {
+ // localStorage.setItem(modusKey, 'true')
+ // }
+
+ }, [offlineState])
+
+ return (
+ window.location.assign('/')}
+ id="offline-modus-modal"
+ >
+
+
+
+
+
+ Programmieren mit der Maus ohne Internetverbindung nutzen - nur im Chrome Browser
+
+
+
+ Um Schulen zu unterstützen, die nicht überall oder nicht durchgehend gutes Internet haben,
+ stellen wir für Programmieren mit der Maus eine Offline-Version zur Verfügung.
+
+
+
+ So geht’s:
+ An einem Ort mit Internet an jedem Gerät einmal auf “Offlinemodus aktivieren” klicken.
+ Alle erfoderlichen Inhalte werden dann heruntergeladen. Wenn das erfolgreich war, erscheint
+ “Offlinemodus aktiviert”.
+ Programmieren mit der Maus kann dann ohne Internetverbindung verwendet werden. Von den Kindern
+ angelegte Projekte werden auf dem Gerät gespeichert, bis wieder eine Internetverbindung besteht.
+
+
+
+ Die Funktion ist noch in der Entwicklung. Derzeit funktioniert der Offlinemodus
+ nur im Chrome-Browser.
+
+
+
+