diff --git a/services/app/apps/codebattle/assets/css/style.scss b/services/app/apps/codebattle/assets/css/style.scss index 04ba47bab..66c54ad59 100644 --- a/services/app/apps/codebattle/assets/css/style.scss +++ b/services/app/apps/codebattle/assets/css/style.scss @@ -80,7 +80,6 @@ $fa-font-path: '/fonts'; @import 'fonts'; @import 'tournaments'; -@import 'taskComponent'; @import 'grades'; .katex .rlap>.inner { @@ -1118,16 +1117,27 @@ a:hover { border-radius: 0.50rem; } -.dropdown-item.cb-dropdown-item { - color: white; +#tasklang-dropdown { - &:disabled, - &.disabled { - color: $text-muted; + &-toggle, + &-menu { + min-width: 4.375rem; } +} - &:hover:not(:disabled):not(.disabled) { - background-color: $cb-bg-panel; +.dropdown-menu, +.cb-dropdown-menu { + & .dropdown-item.cb-dropdown-item { + color: white; + + &:hover:not(:active):not(.active) { + background-color: $cb-bg-panel; + } + + &:active, + &.active { + background-color: $cb-bg-panel; + } } } @@ -2542,3 +2552,17 @@ a.cb-text:hover { .cb-subtle-background { background: radial-gradient(circle at 50% 0%, #3a3b40 0%, $cb-bg-panel 100%); } + +.cb-blur { + background: rgba(0, 0, 0, .3); + backdrop-filter: blur(16px); +} + +.arrow::after, +.bs-popover-bottom .arrow::after { + border-bottom-color: rgba(0, 0, 0); + + .cb-blur & { + border-bottom-color: rgba(0, 0, 0, .3); + } +} diff --git a/services/app/apps/codebattle/assets/css/taskComponent.scss b/services/app/apps/codebattle/assets/css/taskComponent.scss deleted file mode 100644 index f040e1b42..000000000 --- a/services/app/apps/codebattle/assets/css/taskComponent.scss +++ /dev/null @@ -1,14 +0,0 @@ -#tasklang-dropdown { - &-toggle, &-menu { - min-width: 4.375rem; - } - - &-menu { - .active, :active, :focus { - background-color: lighten($color: $secondary, $amount: 10) ; - } - :hover:not(.active) { - background-color: $gray-dark; - } - } -} diff --git a/services/app/apps/codebattle/assets/js/widgets/components/LanguagePickerView.jsx b/services/app/apps/codebattle/assets/js/widgets/components/LanguagePickerView.jsx index 249e81dc2..b438fc58d 100644 --- a/services/app/apps/codebattle/assets/js/widgets/components/LanguagePickerView.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/components/LanguagePickerView.jsx @@ -49,12 +49,14 @@ export const customStyle = { menu: provided => ({ ...provided, color: 'white', - backgroundColor: '#2a2a35', + backgroundColor: 'rgba(0, 0, 0, .3)', + backdropFilter: 'blur(16px)', }), option: provided => ({ ...provided, color: 'white', - backgroundColor: '#2a2a35', + backgroundColor: 'transparent', + ':hover': { backgroundColor: '#3a3f50', }, diff --git a/services/app/apps/codebattle/assets/js/widgets/components/PopoverStickOnHover.jsx b/services/app/apps/codebattle/assets/js/widgets/components/PopoverStickOnHover.jsx index 07ef83eaa..93fe24b76 100644 --- a/services/app/apps/codebattle/assets/js/widgets/components/PopoverStickOnHover.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/components/PopoverStickOnHover.jsx @@ -57,7 +57,7 @@ function PopoverStickOnHover({ shouldUpdatePosition > { setShowPopover(true); diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx index 3c7cec297..4a35fb8df 100644 --- a/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/CopyEditorButton.jsx @@ -9,7 +9,7 @@ const CopyEditorButton = ({ editor }) => { const text = i18n.t('Copy'); const handleCopyClick = () => { - copy(editor.value); + copy(editor.text); }; return ( diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/GameActionButtons.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/GameActionButtons.jsx index 1b099385d..0ff932cb0 100644 --- a/services/app/apps/codebattle/assets/js/widgets/pages/game/GameActionButtons.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/GameActionButtons.jsx @@ -203,7 +203,7 @@ function GameActionButtons({ - + {showGiveUpBtn && } diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/InfoWidget.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/InfoWidget.jsx index 57a870df6..5dd9ea5f5 100644 --- a/services/app/apps/codebattle/assets/js/widgets/pages/game/InfoWidget.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/InfoWidget.jsx @@ -50,7 +50,6 @@ function CommonBattleInfoWidget({ taskLanguage, handleSetLanguage, hideContribution: !!tournamentId, - hideGuide: !!tournamentId, hideContent: isRestricted, }; diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/TaskAssignment.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/TaskAssignment.jsx index e9588d341..0c821316a 100644 --- a/services/app/apps/codebattle/assets/js/widgets/pages/game/TaskAssignment.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/TaskAssignment.jsx @@ -5,13 +5,11 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import cn from 'classnames'; import isEmpty from 'lodash/isEmpty'; import PropTypes from 'prop-types'; -import { useDispatch } from 'react-redux'; import i18n from '../../../i18n'; import GameLevelBadge from '../../components/GameLevelBadge'; import ModalCodes from '../../config/modalCodes'; import PageNames from '../../config/pageNames'; -import { actions } from '../../slices'; import useTaskDescriptionParams from '../../utils/useTaskDescriptionParams'; import ContributorsList from './ContributorsList'; @@ -29,33 +27,12 @@ const renderTaskLink = name => { ); }; -function ShowGuideButton() { - const dispatch = useDispatch(); - const guideShow = () => { - dispatch(actions.updateGameUI({ isShowGuide: true })); - }; - - return ( - - ); -} - function TaskAssignment({ task, taskLanguage, taskSize = 0, handleSetLanguage, changeTaskDescriptionSizes, - hideGuide = false, hideContribution = false, hideContent = false, hidingControls = false, @@ -124,7 +101,6 @@ function TaskAssignment({ {i18n.t('Expand')} )} - {!hideGuide && } {changeTaskDescriptionSizes && !hidingControls && (
{ task={task} taskLanguage={taskLanguage} handleSetLanguage={handleSetLanguage} - hideGuide hideContribution fullSize /> diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/game/TaskLanguageSelection.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/game/TaskLanguageSelection.jsx index 7311c1e81..05a321812 100644 --- a/services/app/apps/codebattle/assets/js/widgets/pages/game/TaskLanguageSelection.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/pages/game/TaskLanguageSelection.jsx @@ -16,6 +16,7 @@ const TaskLanguagesSelection = ({ key={language} active={language === displayLanguage} onClick={handleSetLanguage(language)} + className="cb-dropdown-item" > {`${language.toUpperCase()}`} @@ -30,7 +31,7 @@ const TaskLanguagesSelection = ({ > {displayLanguage.toUpperCase()} - + {avaibleLanguages.map(renderLanguage)} diff --git a/services/app/apps/codebattle/assets/js/widgets/pages/tournamentPlayer/TournamentPlayer.jsx b/services/app/apps/codebattle/assets/js/widgets/pages/tournamentPlayer/TournamentPlayer.jsx index d10af614d..a52c708f2 100644 --- a/services/app/apps/codebattle/assets/js/widgets/pages/tournamentPlayer/TournamentPlayer.jsx +++ b/services/app/apps/codebattle/assets/js/widgets/pages/tournamentPlayer/TournamentPlayer.jsx @@ -294,7 +294,6 @@ function TournamentPlayer({ spectatorMachine, waitingRoomMachine }) { taskLanguage={taskLanguage} handleSetLanguage={handleSetLanguage} changeTaskDescriptionSizes={changeTaskDescriptionSizes} - hideGuide hideContribution hidingControls={hidingControls} fullSize diff --git a/services/app/apps/codebattle/lib/codebattle/game/engine.ex b/services/app/apps/codebattle/lib/codebattle/game/engine.ex index 8d01bc72d..a230718b2 100644 --- a/services/app/apps/codebattle/lib/codebattle/game/engine.ex +++ b/services/app/apps/codebattle/lib/codebattle/game/engine.ex @@ -415,6 +415,16 @@ defmodule Codebattle.Game.Engine do defp update_user!(%{is_guest: true}, _game), do: :noop defp update_user!(%{is_bot: true}, _game), do: :noop + defp update_user!(player, %Game{task_type: "sql"}) do + User + |> Repo.get!(player.id) + |> User.changeset(%{ + rating: player.rating, + db_type: player.editor_lang + }) + |> Repo.update!() + end + defp update_user!(player, %Game{task_type: "css"}) do User |> Repo.get!(player.id)