mirror of
https://github.com/bakhirev/assayo.git
synced 2024-11-16 16:21:41 +00:00
update
This commit is contained in:
parent
96e92e7e8d
commit
ccc41b7dc3
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@ import React, { ReactNode } from 'react';
|
||||||
|
|
||||||
import Button from 'ts/components/UiKit/components/Button';
|
import Button from 'ts/components/UiKit/components/Button';
|
||||||
import notificationsStore from 'ts/components/Notifications/store';
|
import notificationsStore from 'ts/components/Notifications/store';
|
||||||
import localization from 'ts/helpers/Localization';
|
import { t } from 'ts/helpers/Localization';
|
||||||
import copyInBuffer from 'ts/helpers/copyInBuffer';
|
import copyInBuffer from 'ts/helpers/copyInBuffer';
|
||||||
|
|
||||||
import style from './index.module.scss';
|
import style from './index.module.scss';
|
||||||
|
@ -30,10 +30,10 @@ function Console({ className, textForCopy, children }: IConsoleProps) {
|
||||||
className={`${style.console_copy}`}
|
className={`${style.console_copy}`}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
copyInBuffer(textForCopy);
|
copyInBuffer(textForCopy);
|
||||||
notificationsStore.show(localization.get('uiKit.console.notification'));
|
notificationsStore.show(t('uiKit.console.notification'));
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{localization.get('uiKit.console.button')}
|
{t('uiKit.console.button')}
|
||||||
</Button>
|
</Button>
|
||||||
) : null}
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,18 +1,20 @@
|
||||||
@import 'src/styles/variables';
|
@import 'src/styles/variables';
|
||||||
|
|
||||||
.infinite_scroll_border_top,
|
.infinite_scroll_border {
|
||||||
.infinite_scroll_border_bottom {
|
&_top,
|
||||||
position: sticky;
|
&_bottom {
|
||||||
z-index: 3;
|
position: sticky;
|
||||||
background-color: var(--color-white);
|
z-index: 3;
|
||||||
}
|
background-color: var(--color-white);
|
||||||
|
}
|
||||||
|
|
||||||
.infinite_scroll_border_top {
|
&_top {
|
||||||
top: 0;
|
top: 0;
|
||||||
height: var(--space-s);
|
height: var(--space-s);
|
||||||
}
|
}
|
||||||
|
|
||||||
.infinite_scroll_border_bottom {
|
&_bottom {
|
||||||
bottom: -2px;
|
bottom: -2px;
|
||||||
height: var(--space-s);
|
height: var(--space-s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
margin: var(--space-xxl) auto 0;
|
margin: 0 auto;
|
||||||
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
import React from 'react';
|
import React, { useState } from 'react';
|
||||||
|
|
||||||
|
import { getRandom } from 'ts/helpers/random';
|
||||||
|
|
||||||
import IAnswer from '../interfaces/Answer';
|
import IAnswer from '../interfaces/Answer';
|
||||||
import style from '../styles/answer.module.scss';
|
import style from '../styles/answer.module.scss';
|
||||||
|
@ -14,6 +16,7 @@ function Answer({
|
||||||
mode,
|
mode,
|
||||||
onClick,
|
onClick,
|
||||||
}: IAnswerProps): React.ReactElement | null {
|
}: IAnswerProps): React.ReactElement | null {
|
||||||
|
const [iconIndex] = useState(getRandom(5));
|
||||||
const className = [style.quize_answer_wrapper];
|
const className = [style.quize_answer_wrapper];
|
||||||
const textClasName = [style.quize_answer_text];
|
const textClasName = [style.quize_answer_text];
|
||||||
|
|
||||||
|
@ -32,7 +35,7 @@ function Answer({
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
className={style.quize_answer_icon}
|
className={style.quize_answer_icon}
|
||||||
src="./assets/games/quize/balloon.png"
|
src={`./assets/games/quize/balloon_${iconIndex}.png`}
|
||||||
/>
|
/>
|
||||||
<figcaption className={textClasName.join(' ')}>
|
<figcaption className={textClasName.join(' ')}>
|
||||||
{answer.title}
|
{answer.title}
|
||||||
|
|
|
@ -69,7 +69,10 @@ function Question({
|
||||||
return (
|
return (
|
||||||
<div className={stylePage.quize_question}>
|
<div className={stylePage.quize_question}>
|
||||||
<div className={stylePage.quize_question_body}>
|
<div className={stylePage.quize_question_body}>
|
||||||
<div className={style.quize_title}>
|
<div
|
||||||
|
className={style.quize_title}
|
||||||
|
style={{ backgroundImage: 'url(./assets/games/quize/cloud_big.png)' }}
|
||||||
|
>
|
||||||
{question.title}
|
{question.title}
|
||||||
</div>
|
</div>
|
||||||
<div className={style.quize_question_answer}>
|
<div className={style.quize_question_answer}>
|
||||||
|
|
|
@ -114,8 +114,16 @@ function QuizePage({
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={style.quize_container}
|
className={style.quize_container}
|
||||||
style={{ backgroundImage: 'url(./assets/games/quize/air.jpg)' }}
|
style={{ backgroundImage: 'url(./assets/games/quize/cloud_bg.png)' }}
|
||||||
>
|
>
|
||||||
|
<div
|
||||||
|
className={style.quize_cloud_bg}
|
||||||
|
style={{ backgroundImage: 'url(./assets/games/quize/cloud_bg.png)' }}
|
||||||
|
/>
|
||||||
|
<div
|
||||||
|
className={style.quize_cloud}
|
||||||
|
style={{ backgroundImage: 'url(./assets/games/quize/cloud.png)' }}
|
||||||
|
/>
|
||||||
<div className={className}>
|
<div className={className}>
|
||||||
{page}
|
{page}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -46,17 +46,21 @@
|
||||||
|
|
||||||
&_text {
|
&_text {
|
||||||
--temp-bg: var(--color-white);
|
--temp-bg: var(--color-white);
|
||||||
|
--temp-text: var(--color-black);
|
||||||
|
|
||||||
&_selected {
|
&_selected {
|
||||||
--temp-bg: var(--color-13);
|
--temp-bg: #5F9C92;
|
||||||
|
--temp-text: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
||||||
&_correct {
|
&_correct {
|
||||||
--temp-bg: var(--color-23);
|
--temp-bg: #267A05;
|
||||||
|
--temp-text: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
||||||
&_error {
|
&_error {
|
||||||
--temp-bg: var(--color-12);
|
--temp-bg: #DD5F00;
|
||||||
|
--temp-text: var(--color-white);
|
||||||
}
|
}
|
||||||
|
|
||||||
font-size: var(--font-m);
|
font-size: var(--font-m);
|
||||||
|
@ -71,8 +75,9 @@
|
||||||
margin: var(--space-xxs) auto 0;
|
margin: var(--space-xxs) auto 0;
|
||||||
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
border: 2px solid #6E605E;
|
||||||
border-radius: var(--border-radius-m);
|
border-radius: var(--border-radius-m);
|
||||||
color: var(--color-black);
|
color: var(--temp-text);
|
||||||
background-color: var(--temp-bg);
|
background-color: var(--temp-bg);
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
|
|
|
@ -17,6 +17,35 @@
|
||||||
background-repeat: repeat;
|
background-repeat: repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&_cloud,
|
||||||
|
&_cloud_bg {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
background-position: 0 0;
|
||||||
|
background-size: auto 100%;
|
||||||
|
background-repeat: repeat;
|
||||||
|
|
||||||
|
animation-name: quize_cloud;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-fill-mode: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&_cloud_bg {
|
||||||
|
animation-duration: 170s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&_cloud {
|
||||||
|
animation-duration: 70s;
|
||||||
|
}
|
||||||
|
|
||||||
&_slider {
|
&_slider {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: block;
|
display: block;
|
||||||
|
@ -50,23 +79,28 @@
|
||||||
font-weight: 100;
|
font-weight: 100;
|
||||||
|
|
||||||
display: block;
|
display: block;
|
||||||
width: 500px;
|
width: 433px;
|
||||||
padding: var(--space-xxl) 64px;
|
padding: var(--space-xxl) 64px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
text-shadow: 0 0 5px var(--color-white), 0 0 5px var(--color-white), 0 0 5px var(--color-white);
|
||||||
|
|
||||||
color: var(--color-black);
|
color: var(--color-black);
|
||||||
background-color: var(--color-white);
|
// background-color: var(--color-white);
|
||||||
|
|
||||||
|
background-position: center left;
|
||||||
|
background-size: auto 80%;
|
||||||
|
background-repeat: repeat-x;
|
||||||
}
|
}
|
||||||
|
|
||||||
&_title {
|
&_title {
|
||||||
font-size: var(--font-l);
|
font-size: var(--font-l);
|
||||||
margin: 0 auto var(--space-xxl);
|
margin: 0 auto var(--space-xxl);
|
||||||
border-radius: var(--border-radius-m);
|
border-radius: 0 0 var(--border-radius-l) var(--border-radius-l);
|
||||||
background: radial-gradient(ellipse farthest-corner at 50% 50%, rgba(255, 255, 255, 1) 0%, rgba(240, 174, 122, 0.5) 100%);
|
// background: radial-gradient(ellipse farthest-corner at 50% 50%, rgba(255, 255, 255, 1) 10%, rgba(240, 174, 122, 0.5) 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&_description {
|
&_description {
|
||||||
|
@ -111,3 +145,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes quize_cloud {
|
||||||
|
from {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
background-position: -200px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import Title from 'ts/components/Title';
|
import Title from 'ts/components/Title';
|
||||||
import localization from 'ts/helpers/Localization';
|
import { t } from 'ts/helpers/Localization';
|
||||||
import Banner from 'ts/components/Banner';
|
import Banner from 'ts/components/Banner';
|
||||||
|
|
||||||
import Card from './components/Card';
|
import Card from './components/Card';
|
||||||
|
@ -50,7 +50,7 @@ function Recommendations({
|
||||||
cards = addBannerInRandomIndex(cards);
|
cards = addBannerInRandomIndex(cards);
|
||||||
}
|
}
|
||||||
|
|
||||||
const title = localization.get('recommendations.title');
|
const title = t('recommendations.title');
|
||||||
const className = mode === 'print'
|
const className = mode === 'print'
|
||||||
? `${style.recommendations_container} scroll_x ${style.recommendations_container_for_print}`
|
? `${style.recommendations_container} scroll_x ${style.recommendations_container_for_print}`
|
||||||
: `${style.recommendations_container} scroll_x`;
|
: `${style.recommendations_container} scroll_x`;
|
||||||
|
|
|
@ -85,3 +85,7 @@ const localization = new Localization();
|
||||||
window.localization = localization;
|
window.localization = localization;
|
||||||
|
|
||||||
export default localization;
|
export default localization;
|
||||||
|
|
||||||
|
export function t(code: string): string {
|
||||||
|
return localization.get(code);
|
||||||
|
}
|
||||||
|
|
|
@ -9,11 +9,6 @@ export interface IPagination<TYPE> {
|
||||||
content: TYPE[];
|
content: TYPE[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IPaginationProps {
|
|
||||||
pageNumber: number;
|
|
||||||
pageSize: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IPaginationRequest {
|
export interface IPaginationRequest {
|
||||||
page?: number;
|
page?: number;
|
||||||
size?: number;
|
size?: number;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import ICommonPageProps from 'ts/components/Page/interfaces/CommonPageProps';
|
||||||
import Extension from './Extension';
|
import Extension from './Extension';
|
||||||
import Type from './Type';
|
import Type from './Type';
|
||||||
|
|
||||||
const FileAnalitics = observer(({
|
const FileAnalytics = observer(({
|
||||||
mode,
|
mode,
|
||||||
}: ICommonPageProps): React.ReactElement | null => {
|
}: ICommonPageProps): React.ReactElement | null => {
|
||||||
return (
|
return (
|
||||||
|
@ -17,4 +17,4 @@ const FileAnalitics = observer(({
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
export default FileAnalitics;
|
export default FileAnalytics;
|
|
@ -33,10 +33,8 @@ const TeamBuilding = observer((): React.ReactElement => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|
||||||
<Title title="Квиз"/>
|
|
||||||
<Quize />
|
<Quize />
|
||||||
<Title title="Скорость закрытия задач"/>
|
{/*<Title title="Скорость закрытия задач"/>*/}
|
||||||
<Races tracks={tracks} />
|
<Races tracks={tracks} />
|
||||||
<Title title="Максимальная длинна подписи коммита"/>
|
<Title title="Максимальная длинна подписи коммита"/>
|
||||||
<SwimmingPool tracks={maxMessageLength}/>
|
<SwimmingPool tracks={maxMessageLength}/>
|
||||||
|
|
|
@ -13,7 +13,7 @@ import Scope from './components/Scope';
|
||||||
import Tempo from './components/Tempo';
|
import Tempo from './components/Tempo';
|
||||||
import Total from './components/Total';
|
import Total from './components/Total';
|
||||||
import Files from './components/Files';
|
import Files from './components/Files';
|
||||||
import FileAnalitics from './components/FileAnalitics';
|
import FileAnalytics from './components/FileAnalytics';
|
||||||
import Type from './components/Type';
|
import Type from './components/Type';
|
||||||
import Week from './components/Week';
|
import Week from './components/Week';
|
||||||
import Month from './components/Month';
|
import Month from './components/Month';
|
||||||
|
@ -36,7 +36,7 @@ function getViewById(page?: string) {
|
||||||
if (page === 'hours') return <Hours mode={mode}/>;
|
if (page === 'hours') return <Hours mode={mode}/>;
|
||||||
if (page === 'files') return <Files/>;
|
if (page === 'files') return <Files/>;
|
||||||
if (page === 'removedFiles') return <Files type="removed" />;
|
if (page === 'removedFiles') return <Files type="removed" />;
|
||||||
if (page === 'extension') return <FileAnalitics mode={mode}/>;
|
if (page === 'extension') return <FileAnalytics mode={mode}/>;
|
||||||
if (page === 'release') return <Release mode={mode}/>;
|
if (page === 'release') return <Release mode={mode}/>;
|
||||||
if (page === 'commits') return <Commits/>;
|
if (page === 'commits') return <Commits/>;
|
||||||
if (page === 'changes') return <Changes/>;
|
if (page === 'changes') return <Changes/>;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import {
|
||||||
getStringFromFileList,
|
getStringFromFileList,
|
||||||
getStringsForParser,
|
getStringsForParser,
|
||||||
} from 'ts/components/DropZone/helpers';
|
} from 'ts/components/DropZone/helpers';
|
||||||
import localization from 'ts/helpers/Localization';
|
import { t } from 'ts/helpers/Localization';
|
||||||
import dataGripStore from 'ts/store/DataGrip';
|
import dataGripStore from 'ts/store/DataGrip';
|
||||||
|
|
||||||
import style from './styles/index.module.scss';
|
import style from './styles/index.module.scss';
|
||||||
|
@ -15,11 +15,11 @@ function WarningInfo() {
|
||||||
return (
|
return (
|
||||||
<h4 className={style.welcome_warning}>
|
<h4 className={style.welcome_warning}>
|
||||||
<Description
|
<Description
|
||||||
text={localization.get('page.welcome.warning1')}
|
text={t('page.welcome.warning1')}
|
||||||
className={style.welcome_warning_text}
|
className={style.welcome_warning_text}
|
||||||
/>
|
/>
|
||||||
<Description
|
<Description
|
||||||
text={localization.get('page.welcome.warning2')}
|
text={t('page.welcome.warning2')}
|
||||||
className={style.welcome_warning_text}
|
className={style.welcome_warning_text}
|
||||||
/>
|
/>
|
||||||
</h4>
|
</h4>
|
||||||
|
@ -36,22 +36,22 @@ function Welcome() {
|
||||||
<section className={style.welcome}>
|
<section className={style.welcome}>
|
||||||
<div className={style.welcome_row}>
|
<div className={style.welcome_row}>
|
||||||
<h2 className={style.welcome_first_title}>
|
<h2 className={style.welcome_first_title}>
|
||||||
{localization.get('page.welcome.step1')}
|
{t('page.welcome.step1')}
|
||||||
</h2>
|
</h2>
|
||||||
<Console
|
<Console
|
||||||
className={style.welcome_console}
|
className={style.welcome_console}
|
||||||
textForCopy={command}
|
textForCopy={command}
|
||||||
/>
|
/>
|
||||||
<Description
|
<Description
|
||||||
text={localization.get('page.welcome.description')}
|
text={t('page.welcome.description')}
|
||||||
className={`${style.welcome_description}`}
|
className={`${style.welcome_description}`}
|
||||||
/>
|
/>
|
||||||
<h2 className={style.welcome_last_title}>
|
<h2 className={style.welcome_last_title}>
|
||||||
{localization.get('page.welcome.step2') === 'page.welcome.step2'
|
{t('page.welcome.step2') === 'page.welcome.step2'
|
||||||
? ''
|
? ''
|
||||||
: localization.get('page.welcome.step2')}
|
: t('page.welcome.step2')}
|
||||||
<label className={style.welcome_title_link}>
|
<label className={style.welcome_title_link}>
|
||||||
{localization.get('page.welcome.step3')}
|
{t('page.welcome.step3')}
|
||||||
<input
|
<input
|
||||||
multiple
|
multiple
|
||||||
type="file"
|
type="file"
|
||||||
|
@ -64,7 +64,7 @@ function Welcome() {
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
{localization.get('page.welcome.step4')}
|
{t('page.welcome.step4')}
|
||||||
</h2>
|
</h2>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
Loading…
Reference in a new issue