0.7.5-topicfix

This commit is contained in:
2025-07-03 00:20:10 +03:00
parent 27c5a57709
commit 441cca8045
19 changed files with 2008 additions and 3213 deletions

View File

@@ -1,6 +1,7 @@
import { createContext, createEffect, createSignal, JSX, onMount, useContext } from 'solid-js'
import {
ADMIN_GET_ROLES_QUERY,
ADMIN_GET_TOPICS_QUERY,
GET_COMMUNITIES_QUERY,
GET_TOPICS_BY_COMMUNITY_QUERY,
GET_TOPICS_QUERY
@@ -208,18 +209,16 @@ export function DataProvider(props: { children: JSX.Element }) {
try {
setIsLoading(true)
// Загружаем все топики сообщества сразу с лимитом 800
// Используем админский резолвер для получения всех топиков без лимитов
const response = await fetch('/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: GET_TOPICS_BY_COMMUNITY_QUERY,
query: ADMIN_GET_TOPICS_QUERY,
variables: {
community_id: communityId,
limit: 800,
offset: 0
community_id: communityId
}
})
})
@@ -230,12 +229,13 @@ export function DataProvider(props: { children: JSX.Element }) {
throw new Error(result.errors[0].message)
}
const allTopicsData = result.data.get_topics_by_community || []
const allTopicsData = result.data.adminGetTopics || []
// Сохраняем все данные сразу для отображения
setTopics(allTopicsData)
setAllTopics(allTopicsData)
console.log(`[DataProvider] Загружено ${allTopicsData.length} топиков для сообщества ${communityId}`)
return allTopicsData
} catch (error) {
console.error('Ошибка загрузки топиков по сообществу:', error)

View File

@@ -193,6 +193,22 @@ export const GET_TOPICS_BY_COMMUNITY_QUERY: string =
}
`.loc?.source.body || ''
export const ADMIN_GET_TOPICS_QUERY: string =
gql`
query AdminGetTopics($community_id: Int!) {
adminGetTopics(community_id: $community_id) {
id
title
slug
body
community
parent_ids
pic
oid
}
}
`.loc?.source.body || ''
export const GET_COLLECTIONS_QUERY: string =
gql`
query GetCollections {

View File

@@ -64,7 +64,7 @@ const UserEditModal: Component<UserEditModalProps> = (props) => {
// Получаем информацию о роли по ID
const getRoleInfo = (roleId: string) => {
return AVAILABLE_ROLES.find((role) => role.id === roleId) || { name: roleId, emoji: '🎭' }
return AVAILABLE_ROLES.find((role) => role.id === roleId) || { name: roleId, emoji: '👤' }
}
// Формируем строку с ролями и эмоджи
@@ -218,7 +218,7 @@ const UserEditModal: Component<UserEditModalProps> = (props) => {
<div class={formStyles.fieldGroup}>
<label class={formStyles.label}>
<span class={formStyles.labelText}>
<span class={formStyles.labelIcon}>🎭</span>
<span class={formStyles.labelIcon}>👤</span>
Текущие роли
</span>
</label>

View File

@@ -178,7 +178,7 @@ const AuthorsRoute: Component<AuthorsRouteProps> = (props) => {
case 'проверен':
return '✓'
default:
return '🎭'
return '👤'
}
}

View File

@@ -228,12 +228,6 @@ export const Topics = (props: TopicsProps) => {
</table>
</div>
<div class={styles.tableFooter}>
<span class={styles.resultsInfo}>
<span>Всего</span>: {sortedTopics().length}
</span>
</div>
{/* Модальное окно для редактирования топика */}
<TopicEditModal
isOpen={showEditModal()}

View File

@@ -209,7 +209,7 @@ const RoleManager = (props: RoleManagerProps) => {
<div class={styles.section}>
<div class={styles.sectionHeader}>
<h3 class={styles.sectionTitle}>
<span class={styles.icon}>🎭</span>
<span class={styles.icon}>👤</span>
Доступные роли в сообществе
</h3>
</div>
@@ -340,7 +340,7 @@ const RoleManager = (props: RoleManagerProps) => {
<div class={styles.fieldGroup}>
<label class={formStyles.label}>
<span class={formStyles.labelText}>
<span class={formStyles.labelIcon}>🎭</span>
<span class={formStyles.labelIcon}>👤</span>
Иконка
</span>
</label>