mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-20 05:56:10 +05:00
216 lines
4.3 KiB
JavaScript
216 lines
4.3 KiB
JavaScript
import styled, { css } from 'styled-components'
|
|
|
|
export const DialogContentGrid = styled.div`
|
|
display: grid;
|
|
grid-template-columns: 70% 1fr;
|
|
grid-template-rows: min-content 80px min-content;
|
|
grid-template-areas:
|
|
'main cache'
|
|
'buttons buttons'
|
|
'file-list file-list';
|
|
`
|
|
export const Poster = styled.div`
|
|
${({ poster }) => css`
|
|
height: 400px;
|
|
border-radius: 5px;
|
|
overflow: hidden;
|
|
align-self: center;
|
|
|
|
${poster
|
|
? css`
|
|
img {
|
|
border-radius: 5px;
|
|
height: 100%;
|
|
}
|
|
`
|
|
: css`
|
|
width: 300px;
|
|
display: grid;
|
|
place-items: center;
|
|
background: #74c39c;
|
|
|
|
svg {
|
|
transform: scale(2.5) translateY(-3px);
|
|
}
|
|
`}
|
|
`}
|
|
`
|
|
export const MainSection = styled.section`
|
|
grid-area: main;
|
|
padding: 40px;
|
|
display: grid;
|
|
grid-template-columns: min-content 1fr;
|
|
gap: 30px;
|
|
background: linear-gradient(145deg, #e4f6ed, #b5dec9);
|
|
`
|
|
|
|
export const MainSectionButtonGroup = styled.div`
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 20px;
|
|
|
|
:not(:last-child) {
|
|
margin-bottom: 30px;
|
|
}
|
|
`
|
|
|
|
export const CacheSection = styled.section`
|
|
grid-area: cache;
|
|
padding: 40px;
|
|
display: grid;
|
|
align-content: start;
|
|
grid-template-rows: min-content 1fr min-content;
|
|
`
|
|
|
|
export const ButtonSection = styled.section`
|
|
grid-area: buttons;
|
|
box-shadow: 0px 4px 4px -1px rgb(0 0 0 / 30%);
|
|
display: flex;
|
|
justify-content: space-evenly;
|
|
align-items: center;
|
|
text-transform: uppercase;
|
|
`
|
|
|
|
export const ButtonSectionButton = styled.div`
|
|
background: lightblue;
|
|
height: 100%;
|
|
flex: 1;
|
|
display: grid;
|
|
place-items: center;
|
|
cursor: pointer;
|
|
font-size: 15px;
|
|
|
|
:not(:last-child) {
|
|
border-right: 1px solid blue;
|
|
}
|
|
|
|
:hover {
|
|
background: red;
|
|
}
|
|
|
|
.hash-group {
|
|
display: grid;
|
|
place-items: center;
|
|
}
|
|
|
|
.hash-text {
|
|
font-size: 10px;
|
|
color: #7c7b7c;
|
|
}
|
|
`
|
|
|
|
export const TorrentFilesSection = styled.div`
|
|
grid-area: file-list;
|
|
padding: 40px;
|
|
`
|
|
|
|
export const SectionSubName = styled.div`
|
|
${({ mb }) => css`
|
|
${mb && `margin-bottom: ${mb}px`};
|
|
color: #7c7b7c;
|
|
`}
|
|
`
|
|
|
|
export const SectionTitle = styled.div`
|
|
${({ mb }) => css`
|
|
${mb && `margin-bottom: ${mb}px`};
|
|
font-size: 35px;
|
|
font-weight: 200;
|
|
line-height: 1;
|
|
word-break: break-word;
|
|
`}
|
|
`
|
|
|
|
export const SectionHeader = styled.div`
|
|
margin-bottom: 20px;
|
|
`
|
|
|
|
export const DetailedTorrentCacheViewWrapper = styled.div`
|
|
padding-top: 50px;
|
|
`
|
|
|
|
export const StatisticsWrapper = styled.div`
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(210px, min-content));
|
|
gap: 20px;
|
|
`
|
|
|
|
export const StatisticsFieldWrapper = styled.div`
|
|
display: grid;
|
|
grid-template-columns: 40px max-content;
|
|
grid-template-rows: min-content 50px;
|
|
grid-template-areas:
|
|
'title title'
|
|
'icon value';
|
|
|
|
> * {
|
|
display: grid;
|
|
place-items: center;
|
|
}
|
|
`
|
|
export const StatisticsFieldTitle = styled.div`
|
|
grid-area: title;
|
|
justify-self: start;
|
|
text-transform: uppercase;
|
|
font-size: 11px;
|
|
margin-bottom: 2px;
|
|
font-weight: 500;
|
|
`
|
|
|
|
export const StatisticsFieldIcon = styled.div`
|
|
${({ bgColor }) => css`
|
|
grid-area: icon;
|
|
color: rgba(255, 255, 255, 0.8);
|
|
background: ${bgColor};
|
|
border-radius: 5px 0 0 5px;
|
|
`}
|
|
`
|
|
export const StatisticsFieldValue = styled.div`
|
|
${({ bgColor }) => css`
|
|
grid-area: value;
|
|
min-width: 170px;
|
|
padding: 0 20px;
|
|
color: #fff;
|
|
font-size: 25px;
|
|
background: ${bgColor};
|
|
border-radius: 0 5px 5px 0;
|
|
`}
|
|
`
|
|
|
|
export const LoadingProgress = styled.div.attrs(({ value, fullAmount }) => {
|
|
const percentage = Math.min(100, (value * 100) / fullAmount)
|
|
|
|
return {
|
|
// this block is here according to styled-components recomendation about fast changable components
|
|
style: {
|
|
background: `linear-gradient(to right, #b5dec9 0%, #b5dec9 ${percentage}%, #fff ${percentage}%, #fff 100%)`,
|
|
},
|
|
}
|
|
})`
|
|
${({ label }) => css`
|
|
border: 1px solid;
|
|
padding: 10px 20px;
|
|
border-radius: 5px;
|
|
|
|
:before {
|
|
content: '${label}';
|
|
display: grid;
|
|
place-items: center;
|
|
font-size: 20px;
|
|
}
|
|
`}
|
|
`
|
|
|
|
export const Divider = styled.div`
|
|
height: 1px;
|
|
background-color: rgba(0, 0, 0, 0.12);
|
|
margin: 30px 0;
|
|
`
|
|
|
|
export const SmallLabel = styled.div`
|
|
font-size: 20px;
|
|
margin-bottom: 10px;
|
|
font-weight: 300;
|
|
line-height: 1;
|
|
`
|