0.7.5-topicfix
This commit is contained in:
@@ -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)
|
||||
|
@@ -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 {
|
||||
|
@@ -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>
|
||||
|
@@ -178,7 +178,7 @@ const AuthorsRoute: Component<AuthorsRouteProps> = (props) => {
|
||||
case 'проверен':
|
||||
return '✓'
|
||||
default:
|
||||
return '🎭'
|
||||
return '👤'
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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()}
|
||||
|
@@ -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>
|
||||
|
Reference in New Issue
Block a user