Add feature flag for task skip functionality in TaskWorkspace. Update bro.config.js to enable skip button based on feature toggle, enhancing user experience in task management.
Some checks failed
platform/bro-js/challenge-pl/pipeline/head There was a failure building this commit
Some checks failed
platform/bro-js/challenge-pl/pipeline/head There was a failure building this commit
This commit is contained in:
@@ -23,6 +23,7 @@ module.exports = {
|
|||||||
features: {
|
features: {
|
||||||
'challenge': {
|
'challenge': {
|
||||||
// add your features here in the format [featureName]: { value: string }
|
// add your features here in the format [featureName]: { value: string }
|
||||||
|
'task.skip.enabled': { value: 'true' }, // Включить кнопку пропуска задания
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
config: {
|
config: {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import {
|
|||||||
} from '@chakra-ui/react'
|
} from '@chakra-ui/react'
|
||||||
import ReactMarkdown from 'react-markdown'
|
import ReactMarkdown from 'react-markdown'
|
||||||
import remarkGfm from 'remark-gfm'
|
import remarkGfm from 'remark-gfm'
|
||||||
|
import { useFeature } from '@brojs/cli'
|
||||||
|
|
||||||
import type { ChallengeTask } from '../../__data__/types'
|
import type { ChallengeTask } from '../../__data__/types'
|
||||||
import { useChallenge } from '../../context/ChallengeContext'
|
import { useChallenge } from '../../context/ChallengeContext'
|
||||||
@@ -27,6 +28,9 @@ export const TaskWorkspace = ({ task, onTaskComplete, onTaskSkip }: TaskWorkspac
|
|||||||
taskId: task.id,
|
taskId: task.id,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Проверяем, включена ли кнопка пропуска через feature flag
|
||||||
|
const skipEnabled = useFeature('challenge', 'task.skip.enabled', 'false') === 'true'
|
||||||
|
|
||||||
// Сохраняем последний результат, чтобы блок не исчезал
|
// Сохраняем последний результат, чтобы блок не исчезал
|
||||||
const [lastResult, setLastResult] = useState<typeof finalSubmission>(null)
|
const [lastResult, setLastResult] = useState<typeof finalSubmission>(null)
|
||||||
// Состояние для показа дополнительного материала
|
// Состояние для показа дополнительного материала
|
||||||
@@ -397,16 +401,18 @@ export const TaskWorkspace = ({ task, onTaskComplete, onTaskSkip }: TaskWorkspac
|
|||||||
<HStack justify="space-between" gap={2}>
|
<HStack justify="space-between" gap={2}>
|
||||||
{!isAccepted && (
|
{!isAccepted && (
|
||||||
<>
|
<>
|
||||||
<Button
|
{skipEnabled && (
|
||||||
onClick={onTaskSkip}
|
<Button
|
||||||
variant="outline"
|
onClick={onTaskSkip}
|
||||||
size="sm"
|
variant="outline"
|
||||||
colorScheme="gray"
|
size="sm"
|
||||||
// @ts-expect-error Chakra UI v2 uses isDisabled
|
colorScheme="gray"
|
||||||
isDisabled={isChecking}
|
// @ts-expect-error Chakra UI v2 uses isDisabled
|
||||||
>
|
isDisabled={isChecking}
|
||||||
Пропустить
|
>
|
||||||
</Button>
|
Пропустить
|
||||||
|
</Button>
|
||||||
|
)}
|
||||||
{/* @ts-expect-error Chakra UI v2 uses isLoading/isDisabled */}
|
{/* @ts-expect-error Chakra UI v2 uses isLoading/isDisabled */}
|
||||||
<Button onClick={submit} colorScheme="teal" size="sm" isLoading={isChecking} isDisabled={!result.trim() || isChecking}>
|
<Button onClick={submit} colorScheme="teal" size="sm" isLoading={isChecking} isDisabled={!result.trim() || isChecking}>
|
||||||
{needsRevision ? 'Отправить снова' : 'Отправить на проверку'}
|
{needsRevision ? 'Отправить снова' : 'Отправить на проверку'}
|
||||||
|
|||||||
Reference in New Issue
Block a user