From b404ba86eacbdd092792a07224517608f1a1407b Mon Sep 17 00:00:00 2001 From: Daniel Shleifman Date: Mon, 28 Jun 2021 18:15:08 +0300 Subject: [PATCH] about dialog updated --- web/src/components/About.jsx | 88 ------------- web/src/components/About/NameComponent.jsx | 17 +++ web/src/components/About/index.jsx | 75 +++++++++++ web/src/components/About/style.js | 132 +++++++++++++++++++ web/src/components/About/ts-icon-192x192.png | Bin 0 -> 30970 bytes web/src/components/CloseServer.jsx | 43 +++--- web/src/components/RemoveAll.jsx | 43 +++--- web/src/locales/en/translation.json | 1 + web/src/locales/ru/translation.json | 1 + 9 files changed, 264 insertions(+), 136 deletions(-) delete mode 100644 web/src/components/About.jsx create mode 100644 web/src/components/About/NameComponent.jsx create mode 100644 web/src/components/About/index.jsx create mode 100644 web/src/components/About/style.js create mode 100644 web/src/components/About/ts-icon-192x192.png diff --git a/web/src/components/About.jsx b/web/src/components/About.jsx deleted file mode 100644 index 29f1def..0000000 --- a/web/src/components/About.jsx +++ /dev/null @@ -1,88 +0,0 @@ -import axios from 'axios' -import { useEffect, useState } from 'react' -import Button from '@material-ui/core/Button' -import Dialog from '@material-ui/core/Dialog' -import DialogActions from '@material-ui/core/DialogActions' -import DialogContent from '@material-ui/core/DialogContent' -import DialogTitle from '@material-ui/core/DialogTitle' -import InfoIcon from '@material-ui/icons/Info' -import ListItem from '@material-ui/core/ListItem' -import ListItemIcon from '@material-ui/core/ListItemIcon' -import ListItemText from '@material-ui/core/ListItemText' -import { useTranslation } from 'react-i18next' -import { echoHost } from 'utils/Hosts' -import { ThemeProvider, useTheme } from '@material-ui/core/styles' - -import { lightTheme } from '../style/materialUISetup' - -export default function AboutDialog() { - const { t } = useTranslation() - const [open, setOpen] = useState(false) - const [torrServerVersion, setTorrServerVersion] = useState('') - useEffect(() => { - axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data)) - }, []) - - const primary = useTheme().palette.primary.main - - return ( -
- setOpen(true)}> - - - - - - - - setOpen(false)} aria-labelledby='form-dialog-title' fullWidth maxWidth='sm'> - {t('About')} - - -
-

TorrServer {torrServerVersion}

- - https://github.com/YouROK/TorrServer - -
- -
-

{t('ThanksToEveryone')}

-
-
-

{t('SpecialThanks')}

- anacrolix Matt Joiner  - - github.com/anacrolix - -
- nikk  - - github.com/tsynik - -
- dancheskus  - - github.com/dancheskus - -
- tw1cker Руслан Пахнев  - - github.com/Nemiroff - -
- SpAwN_LMG -
-
-
- - - - -
-
-
- ) -} diff --git a/web/src/components/About/NameComponent.jsx b/web/src/components/About/NameComponent.jsx new file mode 100644 index 0000000..d36021b --- /dev/null +++ b/web/src/components/About/NameComponent.jsx @@ -0,0 +1,17 @@ +import { GitHub as GitHubIcon } from '@material-ui/icons' + +import { NameWrapper, NameIcon } from './style' + +export default function NameComponent({ name, link }) { + return ( + + {link && ( + + + + )} + + {name} + + ) +} diff --git a/web/src/components/About/index.jsx b/web/src/components/About/index.jsx new file mode 100644 index 0000000..8487adb --- /dev/null +++ b/web/src/components/About/index.jsx @@ -0,0 +1,75 @@ +import { useState } from 'react' +import Button from '@material-ui/core/Button' +import Dialog from '@material-ui/core/Dialog' +import InfoIcon from '@material-ui/icons/Info' +import ListItem from '@material-ui/core/ListItem' +import ListItemIcon from '@material-ui/core/ListItemIcon' +import ListItemText from '@material-ui/core/ListItemText' +import { useTranslation } from 'react-i18next' +import { GitHub as GitHubIcon } from '@material-ui/icons' +import { useMediaQuery } from '@material-ui/core' + +import NameComponent from './NameComponent' +import tsIcon from './ts-icon-192x192.png' +import { DialogWrapper, HeaderSection, ThanksSection, SpecialThanksSection, FooterSection } from './style' + +export default function AboutDialog() { + const { t } = useTranslation() + const [open, setOpen] = useState(false) + const fullScreen = useMediaQuery('@media (max-width:930px)') + + return ( + <> + setOpen(true)}> + + + + + + + setOpen(false)} + aria-labelledby='form-dialog-title' + fullScreen={fullScreen} + maxWidth='xl' + > + + +
{t('About')}
+ ts-icon +
+ +
+ {t('ThanksToEveryone')} + + + {t('SpecialThanks')} + +
+ + + + + +
+
+
+ + + + + + + + +
+
+ + ) +} diff --git a/web/src/components/About/style.js b/web/src/components/About/style.js new file mode 100644 index 0000000..2c2df96 --- /dev/null +++ b/web/src/components/About/style.js @@ -0,0 +1,132 @@ +import styled, { css } from 'styled-components' + +export const DialogWrapper = styled.div` + background: #f1eff3; + height: 100%; + display: grid; + grid-template-rows: max-content 1fr max-content; +` + +export const HeaderSection = styled.section` + display: flex; + justify-content: space-between; + align-items: center; + font-size: 40px; + font-weight: 300; + padding: 20px; + color: #323637; + + img { + width: 80px; + } + + @media (max-width: 930px) { + font-size: 30px; + padding: 10px 20px; + + img { + width: 60px; + } + } +` + +export const ThanksSection = styled.section` + background: #545a5e; + color: #f1eff3; + padding: 40px 20px; + text-align: center; + font-size: 30px; + font-weight: 300; + + @media (max-width: 930px) { + font-size: 20px; + padding: 30px 20px; + } +` + +export const SpecialThanksSection = styled.section` + padding: 40px 20px; + color: #323637; + + > span { + font-size: 20px; + display: block; + margin-bottom: 15px; + } + + > div { + display: grid; + gap: 10px; + grid-template-columns: repeat(4, max-content); + + @media (max-width: 930px) { + grid-template-columns: repeat(3, 1fr); + } + + @media (max-width: 780px) { + grid-template-columns: repeat(2, 1fr); + } + + @media (max-width: 550px) { + grid-template-columns: 1fr; + } + } +` + +export const FooterSection = styled.div` + padding: 20px; + display: grid; + grid-auto-flow: column; + grid-template-columns: repeat(2, max-content); + justify-content: end; + gap: 15px; + align-self: end; + background: #e8e5eb; + + a { + text-decoration: none; + } +` + +export const NameWrapper = styled.a` + ${({ isLink }) => css` + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px solid; + padding: 10px; + border-radius: 5px; + text-transform: uppercase; + text-decoration: none; + background: #545a5e; + color: #f1eff3; + transition: 0.2s; + + @media (max-width: 550px) { + justify-content: start; + } + + > * { + transition: 0.2s; + } + + ${isLink + ? css` + :hover { + filter: brightness(1.1); + + > * { + transform: translateY(-1px); + } + } + ` + : css` + cursor: default; + `} + `} +` + +export const NameIcon = styled.div` + display: grid; + margin-right: 10px; +` diff --git a/web/src/components/About/ts-icon-192x192.png b/web/src/components/About/ts-icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..d34d7227d81d49e3c144fbd10020cca599732d5e GIT binary patch literal 30970 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 t%q<2C - - - {t('CloseServer?')} - - + + {t('CloseServer?')} + + - - - - + + + ) } diff --git a/web/src/components/RemoveAll.jsx b/web/src/components/RemoveAll.jsx index 257b73a..8fccfc1 100644 --- a/web/src/components/RemoveAll.jsx +++ b/web/src/components/RemoveAll.jsx @@ -6,9 +6,6 @@ import DeleteIcon from '@material-ui/icons/Delete' import { useState } from 'react' import { torrentsHost } from 'utils/Hosts' import { useTranslation } from 'react-i18next' -import { ThemeProvider } from '@material-ui/core/styles' - -import { lightTheme } from '../style/materialUISetup' const fnRemoveAll = () => { fetch(torrentsHost(), { @@ -50,28 +47,26 @@ export default function RemoveAll({ isOffline, isLoading }) { - - - {t('DeleteTorrents?')} - - + + {t('DeleteTorrents?')} + + - - - - + + + ) } diff --git a/web/src/locales/en/translation.json b/web/src/locales/en/translation.json index ae60e3c..3569292 100644 --- a/web/src/locales/en/translation.json +++ b/web/src/locales/en/translation.json @@ -74,6 +74,7 @@ "PiecesLength": "Pieces length", "Preload": "Preload", "PreloadBuffer": "Preload Buffer", + "ProjectSource": "Project source", "ReaderReadAHead": "Reader Read Ahead (5-100%)", "RemoveAll": "Remove All", "RemoveCacheOnDrop": "Remove Cache from Disk on Drop Torrent", diff --git a/web/src/locales/ru/translation.json b/web/src/locales/ru/translation.json index f32a812..eb7e522 100644 --- a/web/src/locales/ru/translation.json +++ b/web/src/locales/ru/translation.json @@ -74,6 +74,7 @@ "PiecesLength": "Размер блока", "Preload": "Предзагр.", "PreloadBuffer": "Наполнять кеш перед началом воспроизведения", + "ProjectSource": "Проект", "ReaderReadAHead": "Кеш предзагрузки (5-100%, рек. 95%)", "RemoveAll": "Удалить все", "RemoveCacheOnDrop": "Очищать кеш на диске при отключении торрента",