Css düzenleme
This commit is contained in:
parent
10d6e22cec
commit
bac78eec46
12 changed files with 1165 additions and 1150 deletions
|
|
@ -82,7 +82,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict';
|
|||
"revision": "3ca0b8505b4bec776b69afdba2768812"
|
||||
}, {
|
||||
"url": "index.html",
|
||||
"revision": "0.rs1dfl4jqho"
|
||||
"revision": "0.u7hl29mc92g"
|
||||
}], {});
|
||||
workbox.cleanupOutdatedCaches();
|
||||
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,9 @@
|
|||
import React from 'react'
|
||||
import {
|
||||
LayoutDashboard,
|
||||
Database,
|
||||
Zap,
|
||||
Server,
|
||||
Puzzle,
|
||||
} from 'lucide-react'
|
||||
import { LayoutDashboard, Database, Zap, Server, Puzzle } from 'lucide-react'
|
||||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||
import { useLocation, useNavigate } from 'react-router-dom'
|
||||
import { ROUTES_ENUM } from '@/routes/route.constant'
|
||||
import { Container } from '../shared'
|
||||
|
||||
interface DeveloperLayoutProps {
|
||||
children: React.ReactNode
|
||||
|
|
@ -53,11 +48,11 @@ const DeveloperLayout: React.FC<DeveloperLayoutProps> = ({ children }) => {
|
|||
]
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-gray-50">
|
||||
<Container>
|
||||
<div className="mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
||||
<div className="flex flex-col lg:flex-row gap-8">
|
||||
{/* Sidebar */}
|
||||
<div className="lg:w-64 flex-shrink-0">
|
||||
<div className="lg:w-64 flex-shrink-0 p-4 bg-gray-50">
|
||||
<nav className="space-y-2">
|
||||
{navigation.map((item) => {
|
||||
const Icon = item.icon
|
||||
|
|
@ -84,7 +79,7 @@ const DeveloperLayout: React.FC<DeveloperLayoutProps> = ({ children }) => {
|
|||
<div className="flex-1">{children}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,10 @@ const DefaultItem = ({ nav, onLinkClick }: DefaultItemProps) => {
|
|||
}
|
||||
target={subNav.isExternalLink ? '_blank' : ''}
|
||||
>
|
||||
<span>{nav.title}</span>
|
||||
<span>{subNav.title}</span>
|
||||
</Link>
|
||||
) : (
|
||||
<span>{nav.title}</span>
|
||||
<span>{subNav.title}</span>
|
||||
)}
|
||||
</MenuItem>
|
||||
</PermissionCheck>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { MenuItem } from '@/@types/menu'
|
||||
import isDisabled from '@/components/ui/DatePicker/tables/components/props/isDisabled'
|
||||
import { getMenus, MenuService } from '@/services/menu.service'
|
||||
import { useStoreActions } from '@/store/store'
|
||||
import { useState, useEffect } from 'react'
|
||||
|
|
@ -57,7 +58,7 @@ export const useMenuData = () => {
|
|||
const response = await getMenus()
|
||||
|
||||
if (response.data) {
|
||||
const hierarchicalMenu = buildHierarchy(response.data.items)
|
||||
const hierarchicalMenu = buildHierarchy(response.data.items || [])
|
||||
setMenuItems(hierarchicalMenu)
|
||||
}
|
||||
} catch (err) {
|
||||
|
|
|
|||
|
|
@ -129,8 +129,6 @@ const Wizard = () => {
|
|||
const navigate = useNavigate()
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="grid lg:grid-cols-2 xl:grid-cols-3">
|
||||
<Container>
|
||||
<Helmet
|
||||
titleTemplate="%s | Kurs Platform"
|
||||
|
|
@ -138,6 +136,7 @@ const Wizard = () => {
|
|||
defaultTitle="Kurs Platform"
|
||||
></Helmet>
|
||||
|
||||
<div className="grid lg:grid-cols-2 xl:grid-cols-3">
|
||||
<Formik
|
||||
initialValues={{ ...initialValues }}
|
||||
validationSchema={listFormValidationSchema}
|
||||
|
|
@ -274,9 +273,7 @@ const Wizard = () => {
|
|||
<div className="grid grid-cols-2 gap-1">
|
||||
<FormItem
|
||||
label="Parent Menu Code (En)"
|
||||
invalid={
|
||||
errors.languageTextMenuParentEn && touched.languageTextMenuParentEn
|
||||
}
|
||||
invalid={errors.languageTextMenuParentEn && touched.languageTextMenuParentEn}
|
||||
errorMessage={errors.languageTextMenuParentEn}
|
||||
asterisk={true}
|
||||
>
|
||||
|
|
@ -290,9 +287,7 @@ const Wizard = () => {
|
|||
</FormItem>
|
||||
<FormItem
|
||||
label="Parent Menu Code (Tr)"
|
||||
invalid={
|
||||
errors.languageTextMenuParentTr && touched.languageTextMenuParentTr
|
||||
}
|
||||
invalid={errors.languageTextMenuParentTr && touched.languageTextMenuParentTr}
|
||||
errorMessage={errors.languageTextMenuParentTr}
|
||||
asterisk={true}
|
||||
>
|
||||
|
|
@ -329,9 +324,7 @@ const Wizard = () => {
|
|||
options={dataSourceList}
|
||||
value={
|
||||
values.dataSourceCode
|
||||
? (dataSourceList?.find(
|
||||
(o) => o.value === values.dataSourceCode,
|
||||
) ?? {
|
||||
? (dataSourceList?.find((o) => o.value === values.dataSourceCode) ?? {
|
||||
label: values.dataSourceCode,
|
||||
value: values.dataSourceCode,
|
||||
})
|
||||
|
|
@ -385,9 +378,7 @@ const Wizard = () => {
|
|||
field={field}
|
||||
form={form}
|
||||
options={selectCommandTypeOptions}
|
||||
value={selectCommandTypeOptions.find(
|
||||
(o: any) => o.value === field.value,
|
||||
)}
|
||||
value={selectCommandTypeOptions.find((o: any) => o.value === field.value)}
|
||||
onChange={(o) => form.setFieldValue(field.name, o?.value)}
|
||||
/>
|
||||
)}
|
||||
|
|
@ -540,22 +531,15 @@ const Wizard = () => {
|
|||
/>
|
||||
</FormItem>
|
||||
</div>
|
||||
<Button
|
||||
block
|
||||
className="mt-4"
|
||||
variant="solid"
|
||||
loading={isSubmitting}
|
||||
type="submit"
|
||||
>
|
||||
<Button block className="mt-4" variant="solid" loading={isSubmitting} type="submit">
|
||||
{isSubmitting ? translate('::SavingWithThreeDot') : translate('::Save')}
|
||||
</Button>
|
||||
</FormContainer>
|
||||
</Form>
|
||||
)}
|
||||
</Formik>
|
||||
</Container>
|
||||
</div>
|
||||
</>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -457,7 +457,6 @@ const OrganizationUnits = () => {
|
|||
></Helmet>
|
||||
<Loading type="cover" loading={loading}>
|
||||
<Container>
|
||||
<AdaptableCard>
|
||||
<div className="flex flex-col lg:flex-row gap-4">
|
||||
<Card
|
||||
className="md:w-2/12 min-w-fit"
|
||||
|
|
@ -666,7 +665,6 @@ const OrganizationUnits = () => {
|
|||
</Tabs>
|
||||
</Card>
|
||||
</div>
|
||||
</AdaptableCard>
|
||||
</Container>
|
||||
</Loading>
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ import { MdDelete } from 'react-icons/md'
|
|||
import { useParams } from 'react-router-dom'
|
||||
import * as Yup from 'yup'
|
||||
import { SelectBoxOption } from '@/shared/types'
|
||||
import { ConfirmDialog } from '@/components/shared'
|
||||
import { ConfirmDialog, Container } from '@/components/shared'
|
||||
import { AssignedClaimViewModel, UserInfoViewModel } from '@/proxy/admin/models'
|
||||
|
||||
export interface ClaimTypeDto {
|
||||
|
|
@ -109,6 +109,7 @@ function UserDetails() {
|
|||
title={userDetails.email}
|
||||
defaultTitle="Kurs Platform"
|
||||
></Helmet>
|
||||
<Container>
|
||||
<Tabs defaultValue="user">
|
||||
<TabList>
|
||||
<TabNav value="user" icon={<HiOutlineUser />}>
|
||||
|
|
@ -154,8 +155,15 @@ function UserDetails() {
|
|||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4 w-full">
|
||||
{/* Personal Information */}
|
||||
<div>
|
||||
<FormItem label={translate('::Abp.Identity.User.UserInformation.Name')}>
|
||||
<Field type="text" name="name" placeholder="Name" component={Input} />
|
||||
<FormItem
|
||||
label={translate('::Abp.Identity.User.UserInformation.Name')}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
name="name"
|
||||
placeholder="Name"
|
||||
component={Input}
|
||||
/>
|
||||
</FormItem>
|
||||
</div>
|
||||
|
||||
|
|
@ -240,10 +248,14 @@ function UserDetails() {
|
|||
{/* Contact Information */}
|
||||
<div>
|
||||
<h6 className="mb-4">
|
||||
{translate('::Abp.Identity.User.UserInformation.ContactInformation')}
|
||||
{translate(
|
||||
'::Abp.Identity.User.UserInformation.ContactInformation',
|
||||
)}
|
||||
</h6>
|
||||
<FormItem
|
||||
label={translate('::Abp.Identity.User.UserInformation.EmailAddress')}
|
||||
label={translate(
|
||||
'::Abp.Identity.User.UserInformation.EmailAddress',
|
||||
)}
|
||||
>
|
||||
<Field
|
||||
type="text"
|
||||
|
|
@ -293,7 +305,9 @@ function UserDetails() {
|
|||
onChange={(date: any) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss[Z]') : null,
|
||||
date
|
||||
? dayjs(date).format('YYYY-MM-DDTHH:mm:ss[Z]')
|
||||
: null,
|
||||
)
|
||||
}}
|
||||
/>
|
||||
|
|
@ -494,7 +508,9 @@ function UserDetails() {
|
|||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss[Z]') : null,
|
||||
date
|
||||
? dayjs(date).format('YYYY-MM-DDTHH:mm:ss[Z]')
|
||||
: null,
|
||||
)
|
||||
}}
|
||||
/>
|
||||
|
|
@ -556,7 +572,9 @@ function UserDetails() {
|
|||
onChange={(date) => {
|
||||
form.setFieldValue(
|
||||
field.name,
|
||||
date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss[Z]') : null,
|
||||
date
|
||||
? dayjs(date).format('YYYY-MM-DDTHH:mm:ss[Z]')
|
||||
: null,
|
||||
)
|
||||
}}
|
||||
/>
|
||||
|
|
@ -661,6 +679,7 @@ function UserDetails() {
|
|||
</div>
|
||||
</TabContent>
|
||||
</Tabs>
|
||||
</Container>
|
||||
|
||||
<Dialog isOpen={open} onClose={() => setOpen(false)} onRequestClose={() => setOpen(false)}>
|
||||
<Formik
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import LoadAiPostsFromLocalStorage from './LoadAiPostsFromLocalStorage'
|
|||
import { useLocalization } from '@/utils/hooks/useLocalization'
|
||||
import { getAi } from '@/services/ai.service'
|
||||
import { AiDto } from '@/proxy/ai/models'
|
||||
import { Container } from '@/components/shared'
|
||||
|
||||
// Types
|
||||
type ChatType = 'chat' | 'query' | 'analyze'
|
||||
|
|
@ -262,9 +263,8 @@ const Assistant = () => {
|
|||
|
||||
// Render
|
||||
return (
|
||||
<>
|
||||
<Container>
|
||||
<LoadAiPostsFromLocalStorage />
|
||||
|
||||
<div className="h-[calc(100vh-140px)] flex flex-col">
|
||||
<div className="flex-1 overflow-y-auto p-4 space-y-4">
|
||||
{messages.length === 0 && (
|
||||
|
|
@ -359,7 +359,7 @@ const Assistant = () => {
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { useStoreState } from '@/store/store'
|
|||
import React, { useState, useEffect } from 'react'
|
||||
import { useForumData } from './useForumData'
|
||||
import { ForumView } from './forum/ForumView'
|
||||
import { Container } from '@/components/shared'
|
||||
|
||||
export function Forum() {
|
||||
const { user, tenant } = useStoreState((state) => state.auth)
|
||||
|
|
@ -45,7 +46,7 @@ export function Forum() {
|
|||
}, [error, clearError])
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-gray-50">
|
||||
<Container>
|
||||
{error && (
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
|
||||
<div className="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded relative">
|
||||
|
|
@ -76,7 +77,7 @@ export function Forum() {
|
|||
onTopicSelect={setSelectedTopic}
|
||||
onViewStateChange={setForumViewState}
|
||||
/>
|
||||
</div>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import { useEffect } from 'react'
|
||||
import { useForumData } from './useForumData'
|
||||
import { AdminView } from './admin/AdminView'
|
||||
import { Container } from '@/components/shared'
|
||||
|
||||
export function Management() {
|
||||
const {
|
||||
|
|
@ -52,7 +53,7 @@ export function Management() {
|
|||
}, [error, clearError])
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-gray-50">
|
||||
<Container>
|
||||
{error && (
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
|
||||
<div className="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded relative">
|
||||
|
|
@ -90,7 +91,7 @@ export function Management() {
|
|||
onMarkPostAsAcceptedAnswer={(id) => markPostAsAcceptedAnswer(id).then(() => {})}
|
||||
onUnmarkPostAsAcceptedAnswer={(id) => unmarkPostAsAcceptedAnswer(id).then(() => {})}
|
||||
/>
|
||||
</div>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,20 +75,36 @@ export function AdminView({
|
|||
onUnmarkPostAsAcceptedAnswer,
|
||||
}: AdminViewProps) {
|
||||
const [activeSection, setActiveSection] = useState<AdminSection>('stats')
|
||||
const { translate } = useLocalization();
|
||||
const { translate } = useLocalization()
|
||||
|
||||
const navigationItems = [
|
||||
{ id: 'stats' as AdminSection, label: translate('::App.Forum.Dashboard.Dashboard'), icon: BarChart3 },
|
||||
{ id: 'categories' as AdminSection, label: translate('::App.Forum.Dashboard.Categories'), icon: Folder },
|
||||
{ id: 'topics' as AdminSection, label: translate('::App.Forum.Dashboard.Topics'), icon: MessageSquare },
|
||||
{ id: 'posts' as AdminSection, label: translate('::App.Forum.Dashboard.Posts'), icon: FileText },
|
||||
{
|
||||
id: 'stats' as AdminSection,
|
||||
label: translate('::App.Forum.Dashboard.Dashboard'),
|
||||
icon: BarChart3,
|
||||
},
|
||||
{
|
||||
id: 'categories' as AdminSection,
|
||||
label: translate('::App.Forum.Dashboard.Categories'),
|
||||
icon: Folder,
|
||||
},
|
||||
{
|
||||
id: 'topics' as AdminSection,
|
||||
label: translate('::App.Forum.Dashboard.Topics'),
|
||||
icon: MessageSquare,
|
||||
},
|
||||
{
|
||||
id: 'posts' as AdminSection,
|
||||
label: translate('::App.Forum.Dashboard.Posts'),
|
||||
icon: FileText,
|
||||
},
|
||||
]
|
||||
|
||||
return (
|
||||
<div className="mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
||||
<div className="flex flex-col lg:flex-row gap-8">
|
||||
{/* Sidebar Navigation */}
|
||||
<div className="lg:w-64 flex-shrink-0">
|
||||
<div className="lg:w-64 flex-shrink-0 p-4 bg-gray-50">
|
||||
<nav className="space-y-2">
|
||||
{navigationItems.map((item) => {
|
||||
const Icon = item.icon
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { SortableMenuTree } from './SortableMenuTree'
|
|||
import { MenuItem } from '@/@types/menu'
|
||||
import { useMenuData } from '@/utils/hooks/useMenuData'
|
||||
import { AlertCircle, Loader2, Menu, Save } from 'lucide-react'
|
||||
import { Container } from '@/components/shared'
|
||||
|
||||
export const MenuManager = () => {
|
||||
const { menuItems, setMenuItems, loading, error, refetch, saveMenuData } = useMenuData()
|
||||
|
|
@ -76,9 +77,8 @@ export const MenuManager = () => {
|
|||
}
|
||||
|
||||
return (
|
||||
<div className="w-full h-full">
|
||||
{/* Menu Tree */}
|
||||
<div className="bg-white rounded-lg shadow-md p-6">
|
||||
<Container>
|
||||
<div className="bg-white rounded px-4 sm:px-4 lg:px-6 py-6">
|
||||
<div className="flex items-center justify-between mb-6 flex-wrap gap-4">
|
||||
{/* Sol kısım: Başlık */}
|
||||
<div className="flex items-center gap-2">
|
||||
|
|
@ -152,7 +152,7 @@ export const MenuManager = () => {
|
|||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue