4 Commits

4 changed files with 18 additions and 5 deletions

View File

@@ -23,6 +23,7 @@ module.exports = {
features: { features: {
'challenge-admin': { 'challenge-admin': {
'use-chain-submissions-api': { value: 'true' }, 'use-chain-submissions-api': { value: 'true' },
'submissions-polling-interval-ms': { value: '1200' },
}, },
}, },
config: { config: {

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "challenge-admin-pl", "name": "challenge-admin-pl",
"version": "1.3.1", "version": "1.5.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "challenge-admin-pl", "name": "challenge-admin-pl",
"version": "1.3.1", "version": "1.5.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@brojs/cli": "^1.9.4", "@brojs/cli": "^1.9.4",

View File

@@ -1,6 +1,6 @@
{ {
"name": "challenge-admin", "name": "challenge-admin",
"version": "1.3.1", "version": "1.5.0",
"description": "", "description": "",
"main": "./src/index.tsx", "main": "./src/index.tsx",
"scripts": { "scripts": {

View File

@@ -41,9 +41,18 @@ export const SubmissionsPage: React.FC = () => {
const navigate = useNavigate() const navigate = useNavigate()
const { chainId } = useParams<{ chainId?: string }>() const { chainId } = useParams<{ chainId?: string }>()
// Проверяем feature flag // Проверяем feature flags
const featureValue = getFeatureValue('challenge-admin', 'use-chain-submissions-api') const featureValue = getFeatureValue('challenge-admin', 'use-chain-submissions-api')
const useNewApi = featureValue?.value === 'true' const useNewApi = featureValue?.value === 'true'
const pollingIntervalFeatureValue = getFeatureValue(
'challenge-admin',
'submissions-polling-interval-ms'
)
const pollingIntervalMs = (() => {
const rawValue = pollingIntervalFeatureValue?.value ?? ''
const parsed = Number.parseInt(rawValue, 10)
return Number.isFinite(parsed) && parsed > 0 ? parsed : 1200
})()
// Состояние для выбранного пользователя и фильтров // Состояние для выбранного пользователя и фильтров
const [selectedUserId, setSelectedUserId] = useState<string | null>(null) const [selectedUserId, setSelectedUserId] = useState<string | null>(null)
@@ -70,7 +79,10 @@ export const SubmissionsPage: React.FC = () => {
userId: selectedUserId || undefined, userId: selectedUserId || undefined,
status: statusFilter !== 'all' ? statusFilter : undefined, status: statusFilter !== 'all' ? statusFilter : undefined,
}, },
{ skip: !chainId || !useNewApi } {
skip: !chainId || !useNewApi,
pollingInterval: pollingIntervalMs,
}
) )
// Старый API: получаем общую статистику и submissions отдельно // Старый API: получаем общую статистику и submissions отдельно