toast lokasyonu top-end olarak değiştirildi.

This commit is contained in:
Sedat ÖZTÜRK 2025-09-01 17:07:03 +03:00
parent f2a75eb20f
commit 7c43ed600f
36 changed files with 409 additions and 364 deletions

View file

@ -1,5 +1,5 @@
import { useState, useEffect, useCallback } from 'react'
import { FaThLarge } from 'react-icons/fa';
import { FaThLarge } from 'react-icons/fa'
import {
parseReactCode,
updateComponentProp,
@ -82,7 +82,7 @@ function CodeLayout() {
"Bileşen başarıyla kaydedildi."
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
}

View file

@ -5,36 +5,36 @@ import { themeConfig } from '@/configs/theme.config'
import { useStoreState } from '@/store'
const CopyButton = () => {
const theme = useStoreState((state) => state.theme)
const theme = useStoreState((state) => state.theme)
const handleCopy = () => {
const config = {
...themeConfig,
...theme,
layout: {
type: theme.layout.type,
sideNavCollapse: theme.layout.sideNavCollapse,
},
panelExpand: false,
}
navigator.clipboard.writeText(JSON.stringify(config, null, 2))
toast.push(
<Notification title="Copy Success" type="success">
{`Please replace themeConfig in 'src/configs/themeConfig.js'`}
</Notification>,
{
placement: 'top-center',
}
)
const handleCopy = () => {
const config = {
...themeConfig,
...theme,
layout: {
type: theme.layout.type,
sideNavCollapse: theme.layout.sideNavCollapse,
},
panelExpand: false,
}
return (
<Button block variant="solid" onClick={handleCopy}>
Copy config
</Button>
navigator.clipboard.writeText(JSON.stringify(config, null, 2))
toast.push(
<Notification title="Copy Success" type="success">
{`Please replace themeConfig in 'src/configs/themeConfig.js'`}
</Notification>,
{
placement: 'top-end',
},
)
}
return (
<Button block variant="solid" onClick={handleCopy}>
Copy config
</Button>
)
}
export default CopyButton

View file

@ -11,230 +11,224 @@ import type { CommonProps } from '../@types/common'
import type { ReactNode, ChangeEvent, MouseEvent } from 'react'
export interface UploadProps extends CommonProps {
accept?: string
beforeUpload?: (file: FileList | null, fileList: File[]) => boolean | string
disabled?: boolean
draggable?: boolean
fileList?: File[]
fileListClass?: string
fileItemClass?: string
multiple?: boolean
onChange?: (file: File[], fileList: File[]) => void
onFileRemove?: (file: File[]) => void
showList?: boolean
tip?: string | ReactNode
uploadLimit?: number
// eslint-disable-next-line @typescript-eslint/no-explicit-any
field?: any
accept?: string
beforeUpload?: (file: FileList | null, fileList: File[]) => boolean | string
disabled?: boolean
draggable?: boolean
fileList?: File[]
fileListClass?: string
fileItemClass?: string
multiple?: boolean
onChange?: (file: File[], fileList: File[]) => void
onFileRemove?: (file: File[]) => void
showList?: boolean
tip?: string | ReactNode
uploadLimit?: number
// eslint-disable-next-line @typescript-eslint/no-explicit-any
field?: any
}
const filesToArray = (files: File[]) =>
// eslint-disable-next-line @typescript-eslint/no-explicit-any
Object.keys(files).map((key) => files[key as any])
// eslint-disable-next-line @typescript-eslint/no-explicit-any
Object.keys(files).map((key) => files[key as any])
const Upload = forwardRef<HTMLDivElement, UploadProps>((props, ref) => {
const {
accept,
beforeUpload,
disabled = false,
draggable = false,
fileList = [],
fileListClass,
fileItemClass,
multiple,
onChange,
onFileRemove,
showList = true,
tip,
uploadLimit,
children,
className,
field,
...rest
} = props
const {
accept,
beforeUpload,
disabled = false,
draggable = false,
fileList = [],
fileListClass,
fileItemClass,
multiple,
onChange,
onFileRemove,
showList = true,
tip,
uploadLimit,
children,
className,
field,
...rest
} = props
const fileInputField = useRef<HTMLInputElement>(null)
const [files, setFiles] = useState(fileList)
const [dragOver, setDragOver] = useState(false)
const fileInputField = useRef<HTMLInputElement>(null)
const [files, setFiles] = useState(fileList)
const [dragOver, setDragOver] = useState(false)
const { themeColor, primaryColorLevel } = useConfig()
const { themeColor, primaryColorLevel } = useConfig()
useEffect(() => {
if (JSON.stringify(files) !== JSON.stringify(fileList)) {
setFiles(fileList)
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [JSON.stringify(fileList)])
useEffect(() => {
if (JSON.stringify(files) !== JSON.stringify(fileList)) {
setFiles(fileList)
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [JSON.stringify(fileList)])
const triggerMessage = (msg: string | ReactNode = '') => {
toast.push(
<Notification type="danger" duration={2000}>
{msg || 'Upload Failed!'}
</Notification>,
{
placement: 'top-center',
}
)
const triggerMessage = (msg: string | ReactNode = '') => {
toast.push(
<Notification type="danger" duration={2000}>
{msg || 'Upload Failed!'}
</Notification>,
{
placement: 'top-end',
},
)
}
const pushFile = (newFiles: FileList | null, file: File[]) => {
if (newFiles) {
for (const f of newFiles) {
file.push(f)
}
}
const pushFile = (newFiles: FileList | null, file: File[]) => {
if (newFiles) {
for (const f of newFiles) {
file.push(f)
}
return file
}
const addNewFiles = (newFiles: FileList | null) => {
let file = cloneDeep(files)
if (typeof uploadLimit === 'number' && uploadLimit !== 0) {
if (Object.keys(file).length >= uploadLimit) {
if (uploadLimit === 1) {
file.shift()
file = pushFile(newFiles, file)
}
return file
}
const addNewFiles = (newFiles: FileList | null) => {
let file = cloneDeep(files)
if (typeof uploadLimit === 'number' && uploadLimit !== 0) {
if (Object.keys(file).length >= uploadLimit) {
if (uploadLimit === 1) {
file.shift()
file = pushFile(newFiles, file)
}
return filesToArray({ ...file })
}
}
file = pushFile(newFiles, file)
return filesToArray({ ...file })
}
}
file = pushFile(newFiles, file)
return filesToArray({ ...file })
}
const onNewFileUpload = (e: ChangeEvent<HTMLInputElement>) => {
const { files: newFiles } = e.target
let result: boolean | string = true
if (beforeUpload) {
result = beforeUpload(newFiles, files)
if (result === false) {
triggerMessage()
return
}
if (typeof result === 'string' && result.length > 0) {
triggerMessage(result)
return
}
}
const onNewFileUpload = (e: ChangeEvent<HTMLInputElement>) => {
const { files: newFiles } = e.target
let result: boolean | string = true
if (result) {
const updatedFiles = addNewFiles(newFiles)
setFiles(updatedFiles)
onChange?.(updatedFiles, files)
}
}
if (beforeUpload) {
result = beforeUpload(newFiles, files)
const removeFile = (fileIndex: number) => {
const deletedFileList = files.filter((_, index) => index !== fileIndex)
setFiles(deletedFileList)
onFileRemove?.(deletedFileList)
}
if (result === false) {
triggerMessage()
return
}
const triggerUpload = (e: MouseEvent<HTMLDivElement>) => {
if (!disabled) {
fileInputField.current?.click()
}
e.stopPropagation()
}
if (typeof result === 'string' && result.length > 0) {
triggerMessage(result)
return
}
}
if (result) {
const updatedFiles = addNewFiles(newFiles)
setFiles(updatedFiles)
onChange?.(updatedFiles, files)
}
const renderChildren = () => {
if (!draggable && !children) {
return (
<Button disabled={disabled} onClick={(e) => e.preventDefault()}>
Upload
</Button>
)
}
const removeFile = (fileIndex: number) => {
const deletedFileList = files.filter((_, index) => index !== fileIndex)
setFiles(deletedFileList)
onFileRemove?.(deletedFileList)
if (draggable && !children) {
return <span>Choose a file or drag and drop here</span>
}
const triggerUpload = (e: MouseEvent<HTMLDivElement>) => {
if (!disabled) {
fileInputField.current?.click()
}
e.stopPropagation()
return children
}
const handleDragLeave = useCallback(() => {
if (draggable) {
setDragOver(false)
}
}, [draggable])
const renderChildren = () => {
if (!draggable && !children) {
return (
<Button disabled={disabled} onClick={(e) => e.preventDefault()}>
Upload
</Button>
)
}
if (draggable && !children) {
return <span>Choose a file or drag and drop here</span>
}
return children
const handleDragOver = useCallback(() => {
if (draggable && !disabled) {
setDragOver(true)
}
}, [draggable, disabled])
const handleDragLeave = useCallback(() => {
if (draggable) {
setDragOver(false)
}
}, [draggable])
const handleDragOver = useCallback(() => {
if (draggable && !disabled) {
setDragOver(true)
}
}, [draggable, disabled])
const handleDrop = useCallback(() => {
if (draggable) {
setDragOver(false)
}
}, [draggable])
const draggableProp = {
onDragLeave: handleDragLeave,
onDragOver: handleDragOver,
onDrop: handleDrop,
const handleDrop = useCallback(() => {
if (draggable) {
setDragOver(false)
}
}, [draggable])
const draggableEventFeedbackClass = `border-${themeColor}-${primaryColorLevel}`
const draggableProp = {
onDragLeave: handleDragLeave,
onDragOver: handleDragOver,
onDrop: handleDrop,
}
const uploadClass = classNames(
'upload',
draggable && `upload-draggable`,
draggable && !disabled && `hover:${draggableEventFeedbackClass}`,
draggable && disabled && 'disabled',
dragOver && draggableEventFeedbackClass,
className
)
const draggableEventFeedbackClass = `border-${themeColor}-${primaryColorLevel}`
const uploadInputClass = classNames(
'upload-input',
draggable && `draggable`
)
const uploadClass = classNames(
'upload',
draggable && `upload-draggable`,
draggable && !disabled && `hover:${draggableEventFeedbackClass}`,
draggable && disabled && 'disabled',
dragOver && draggableEventFeedbackClass,
className,
)
return (
<>
<div
ref={ref}
className={uploadClass}
{...(draggable ? draggableProp : { onClick: triggerUpload })}
{...rest}
>
<input
ref={fileInputField}
className={uploadInputClass}
type="file"
disabled={disabled}
multiple={multiple}
accept={accept}
title=""
value=""
onChange={onNewFileUpload}
{...field}
{...rest}
></input>
{renderChildren()}
</div>
{tip}
{showList && (
<div className={classNames('upload-file-list', fileListClass)}>
{files.map((file, index) => (
<FileItem key={file.name + index} file={file} className={fileItemClass}>
<CloseButton
className="upload-file-remove"
onClick={() => removeFile(index)}
/>
</FileItem>
))}
</div>
)}
</>
)
const uploadInputClass = classNames('upload-input', draggable && `draggable`)
return (
<>
<div
ref={ref}
className={uploadClass}
{...(draggable ? draggableProp : { onClick: triggerUpload })}
{...rest}
>
<input
ref={fileInputField}
className={uploadInputClass}
type="file"
disabled={disabled}
multiple={multiple}
accept={accept}
title=""
value=""
onChange={onNewFileUpload}
{...field}
{...rest}
></input>
{renderChildren()}
</div>
{tip}
{showList && (
<div className={classNames('upload-file-list', fileListClass)}>
{files.map((file, index) => (
<FileItem key={file.name + index} file={file} className={fileItemClass}>
<CloseButton className="upload-file-remove" onClick={() => removeFile(index)} />
</FileItem>
))}
</div>
)}
</>
)
})
Upload.displayName = 'Upload'

View file

@ -14,7 +14,11 @@ export abstract class UiEvalService {
const { texts, config } = state.abpConfig
// Create translate function similar to useLocalization hook
const translate = (localizationKey: string, params?: Record<string, string | number>, defaultResourceName?: string): string => {
const translate = (
localizationKey: string,
params?: Record<string, string | number>,
defaultResourceName?: string,
): string => {
if (!texts) {
return localizationKey
}
@ -22,7 +26,7 @@ export abstract class UiEvalService {
texts,
defaultResourceName ?? config?.localization?.defaultResourceName,
localizationKey,
params
params,
)
}
@ -37,7 +41,7 @@ export abstract class UiEvalService {
{translate('::App.BackgroundWorkers.Message')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
}

View file

@ -100,7 +100,7 @@ export class SignalRService {
this.connection.onreconnected(async () => {
this.isConnected = true
toast.push(<Notification title="🔄 Bağlantı tekrar kuruldu" type="success" />, {
placement: 'top-center',
placement: 'top-end',
})
if (this.currentSessionId && store.getState().auth.user) {
@ -113,7 +113,7 @@ export class SignalRService {
if (this.isKicked) {
toast.push(
<Notification title="⚠️ Bağlantı koptu, yeniden bağlanılıyor..." type="warning" />,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
this.isConnected = false
this.currentSessionId = undefined
@ -132,19 +132,19 @@ export class SignalRService {
this.connection.on('Error', (message: string) => {
toast.push(<Notification title={`❌ Hata: ${message}`} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
})
this.connection.on('Warning', (message: string) => {
toast.push(<Notification title={`⚠️ Uyarı: ${message}`} type="warning" />, {
placement: 'top-center',
placement: 'top-end',
})
})
this.connection.on('Info', (message: string) => {
toast.push(<Notification title={` Bilgi: ${message}`} type="info" />, {
placement: 'top-center',
placement: 'top-end',
})
})
@ -164,7 +164,7 @@ export class SignalRService {
this.connection.on('ForceDisconnect', async (message: string) => {
this.isKicked = true
toast.push(<Notification title={`❌ Sınıftan çıkarıldınız: ${message}`} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
if (this.onForceCleanup) {
@ -200,7 +200,7 @@ export class SignalRService {
await Promise.race([startPromise, timeout])
this.isConnected = true
toast.push(<Notification title="✅ Bağlantı kuruldu" type="success" />, {
placement: 'top-center',
placement: 'top-end',
})
} catch {
toast.push(
@ -208,7 +208,7 @@ export class SignalRService {
title="⚠️ Sunucuya bağlanılamadı. Lütfen sayfayı yenileyin veya internet bağlantınızı kontrol edin."
type="danger"
/>,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
this.isConnected = false
}
@ -236,7 +236,7 @@ export class SignalRService {
await this.connection.invoke('JoinClass', sessionId, userId, userName, isTeacher, isActive)
} catch {
toast.push(<Notification title="❌ Sınıfa katılamadı" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -254,7 +254,7 @@ export class SignalRService {
this.currentSessionId = undefined
} catch {
toast.push(<Notification title="⚠️ Çıkış başarısız" type="warning" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -295,7 +295,7 @@ export class SignalRService {
)
} catch {
toast.push(<Notification title="❌ Mesaj gönderilemedi" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -342,7 +342,7 @@ export class SignalRService {
)
} catch {
toast.push(<Notification title="❌ Özel mesaj gönderilemedi" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -382,7 +382,7 @@ export class SignalRService {
)
} catch {
toast.push(<Notification title="❌ Duyuru gönderilemedi" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -404,7 +404,7 @@ export class SignalRService {
await this.connection.invoke('MuteParticipant', sessionId, userId, isMuted, isTeacher)
} catch {
toast.push(<Notification title="⚠️ Katılımcı susturulamadı" type="warning" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -421,7 +421,7 @@ export class SignalRService {
await this.connection.invoke('RaiseHand', sessionId, studentId, studentName)
} catch {
toast.push(<Notification title="❌ El kaldırma başarısız" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -438,7 +438,7 @@ export class SignalRService {
await this.connection.invoke('KickParticipant', sessionId, participantId)
} catch {
toast.push(<Notification title="❌ Katılımcı atılamadı" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -455,7 +455,7 @@ export class SignalRService {
await this.connection.invoke('ApproveHandRaise', sessionId, studentId)
} catch {
toast.push(<Notification title="⚠️ El kaldırma onayı başarısız" type="warning" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -472,7 +472,7 @@ export class SignalRService {
await this.connection.invoke('DismissHandRaise', sessionId, studentId)
} catch {
toast.push(<Notification title="⚠️ El indirme başarısız" type="warning" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -552,7 +552,7 @@ export class SignalRService {
await this.connection.invoke('LeaveClass', this.currentSessionId)
} catch {
toast.push(<Notification title="⚠️ Bağlantı koparılırken hata" type="warning" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}

View file

@ -53,6 +53,7 @@ export class WebRTCService {
title="❌ Kamera/Mikrofon erişilemedi. Tarayıcı ayarlarınızı veya izinleri kontrol edin."
type="danger"
/>,
{ placement: 'top-end' },
)
throw new Error('Media devices access failed')
}
@ -104,7 +105,7 @@ export class WebRTCService {
title={`❌ Bağlantı kurulamadı (${this.maxRetries} deneme başarısız).`}
type="danger"
/>,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
this.closePeerConnection(userId)
}
@ -149,7 +150,7 @@ export class WebRTCService {
return offer
} catch {
toast.push(<Notification title="❌ Offer oluşturulamadı" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
throw new Error('Offer creation failed')
}
@ -169,7 +170,7 @@ export class WebRTCService {
return answer
} catch {
toast.push(<Notification title="❌ Answer oluşturulamadı" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
throw new Error('Answer creation failed')
}
@ -237,7 +238,7 @@ export class WebRTCService {
}
} catch {
toast.push(<Notification title="❌ Kamera açılamadı" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -266,7 +267,7 @@ export class WebRTCService {
}
} catch {
toast.push(<Notification title="❌ Mikrofon açılamadı" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -285,12 +286,12 @@ export class WebRTCService {
await this.signalRService.sendOffer(this.sessionId, userId, offer)
} else {
toast.push(<Notification title="⚠️ Tekrar bağlanma başarısız" type="warning" />, {
placement: 'top-center',
placement: 'top-end',
})
}
} catch {
toast.push(<Notification title="❌ ICE restart başarısız" type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}
@ -344,7 +345,7 @@ export class WebRTCService {
pc.removeTrack(sender)
} catch {
toast.push(<Notification title="⚠️ Track silinemedi" type="warning" />, {
placement: 'top-center',
placement: 'top-end',
})
}
if (sender.track?.readyState !== 'ended') {

View file

@ -185,7 +185,7 @@ const useListFormColumns = ({
// {error.toString()}
// </Notification>,
// {
// placement: 'top-center',
// placement: 'top-end',
// },
// )
return null
@ -231,7 +231,7 @@ const useListFormColumns = ({
// {'Lookup Datası boş geldi.'}
// </Notification>,
// {
// placement: 'top-center',
// placement: 'top-end',
// },
// )
return
@ -252,7 +252,7 @@ const useListFormColumns = ({
// {'Network error'}
// </Notification>,
// {
// placement: 'top-center',
// placement: 'top-end',
// },
// )
return

View file

@ -97,7 +97,7 @@ const useListFormCustomDataSource = ({
// {'multiValue Error'}
// </Notification>,
// {
// placement: 'top-center',
// placement: 'top-end',
// },
// )
console.log('multiValue Error', e)
@ -132,7 +132,7 @@ const useListFormCustomDataSource = ({
// {error.toString()}
// </Notification>,
// {
// placement: 'top-center',
// placement: 'top-end',
// },
// )
return null
@ -156,7 +156,7 @@ const useListFormCustomDataSource = ({
// {error.toString()}
// </Notification>,
// {
// placement: 'top-center',
// placement: 'top-end',
// },
// )
return null
@ -178,7 +178,7 @@ const useListFormCustomDataSource = ({
// {error.toString()}
// </Notification>,
// {
// placement: 'top-center',
// placement: 'top-end',
// },
// )
return null

View file

@ -279,7 +279,7 @@ function ChartEdit() {
{'Chart Bilgileri Kaydedildi.'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -3352,7 +3352,7 @@ function ChartEdit() {
: 'Kayıt Değiştirildi.'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -3460,7 +3460,7 @@ function ChartEdit() {
: 'Kayıt Değiştirildi.'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -3757,7 +3757,7 @@ function ChartEdit() {
: 'Kayıt Değiştirildi.'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -4093,7 +4093,7 @@ function ChartEdit() {
: 'Kayıt Değiştirildi.'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -4389,7 +4389,7 @@ function ChartEdit() {
{translate('::ListForms.KayitSilindi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)

View file

@ -149,7 +149,7 @@ const Wizard = () => {
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
setSubmitting(false)
@ -163,7 +163,7 @@ const Wizard = () => {
}, 500)
} catch (error: any) {
toast.push(<Notification title={error.message} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
}}

View file

@ -24,7 +24,7 @@ import { SelectBoxOption } from '@/shared/types'
import { useLocalization } from '@/utils/hooks/useLocalization'
import { Field, FieldProps, Form, Formik } from 'formik'
import { useState } from 'react'
import { FaEdit, FaFileMedical, FaTrash } from 'react-icons/fa';
import { FaEdit, FaFileMedical, FaTrash } from 'react-icons/fa'
import * as Yup from 'yup'
import { listFormCustomizationOptions } from './options'
import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin/models'
@ -170,7 +170,7 @@ function FormCustomization({
: translate('::ListForms.KayitEklendi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
setRow(null)
@ -180,6 +180,7 @@ function FormCustomization({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)
@ -335,7 +336,7 @@ function FormCustomization({
{translate('::ListForms.KayitSilindi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
getListFormCustomizations()

View file

@ -131,6 +131,7 @@ const FormEdit = () => {
<Notification type="success" duration={2000}>
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{ placement: 'top-end' },
)
} catch (error: any) {
toast.push(
@ -138,6 +139,7 @@ const FormEdit = () => {
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
formikHelpers.setSubmitting(false)

View file

@ -22,7 +22,7 @@ import { useLocalization } from '@/utils/hooks/useLocalization'
import setNull from '@/utils/setNull'
import { Field, FieldProps, Form, Formik } from 'formik'
import { useState } from 'react'
import { FaEdit, FaPlusSquare, FaCheck, FaTrashAlt } from 'react-icons/fa';
import { FaEdit, FaPlusSquare, FaCheck, FaTrashAlt } from 'react-icons/fa'
import { object, string } from 'yup'
import { columnRowTypeListOptions, columnValidationComparisonTypeListOptions } from '../options'
import { FormFieldEditProps } from './FormFields'
@ -141,7 +141,7 @@ function FormFieldTabConditionalFormatting({
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
handleClose()
@ -151,6 +151,7 @@ function FormFieldTabConditionalFormatting({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
}
}}
@ -200,7 +201,7 @@ function FormFieldTabConditionalFormatting({
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
handleClose()
@ -210,6 +211,7 @@ function FormFieldTabConditionalFormatting({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)

View file

@ -23,7 +23,7 @@ import { useLocalization } from '@/utils/hooks/useLocalization'
import setNull from '@/utils/setNull'
import { Field, FieldProps, Form, Formik } from 'formik'
import { useState } from 'react'
import { FaEdit, FaPlusSquare, FaCheck, FaTrashAlt } from 'react-icons/fa';
import { FaEdit, FaPlusSquare, FaCheck, FaTrashAlt } from 'react-icons/fa'
import { bool, object, string } from 'yup'
import {
columnValidationComparisonTypeListOptions,
@ -159,6 +159,7 @@ function FormFieldTabValidationRules({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
}
}}
@ -210,7 +211,7 @@ function FormFieldTabValidationRules({
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
handleClose()
@ -220,6 +221,7 @@ function FormFieldTabValidationRules({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)

View file

@ -36,7 +36,7 @@ import setNull from '@/utils/setNull'
import classNames from 'classnames'
import { Field, FieldProps, Form, Formik, FormikHelpers } from 'formik'
import { useEffect, useState } from 'react'
import { FaFileMedical, FaCopy, FaEyeSlash, FaMinus, FaTimes } from 'react-icons/fa';
import { FaFileMedical, FaCopy, FaEyeSlash, FaMinus, FaTimes } from 'react-icons/fa'
import { number, object, string } from 'yup'
import FormFieldEdit from './FormFieldEdit'
import { dbSourceTypeOptions } from '../options'
@ -142,7 +142,7 @@ function FormFields({
{error.toString()}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
}
@ -179,6 +179,7 @@ function FormFields({
<Notification type="success" duration={2000}>
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{ placement: 'top-end' },
)
} catch (error: any) {
toast.push(
@ -186,6 +187,7 @@ function FormFields({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
formikHelpers?.setSubmitting(false)
@ -222,6 +224,7 @@ function FormFields({
<Notification type="success" duration={100}>
{'Alanlar geldi'}
</Notification>,
{ placement: 'top-end' },
)
})
setSubmitting(false)
@ -424,7 +427,7 @@ function FormFields({
: translate('::ListForms.KayitEklendi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
handleNewFieldFormClose()
@ -434,6 +437,7 @@ function FormFields({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)
@ -588,7 +592,7 @@ function FormFields({
{translate('::ListForms.KayitSilindi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
getFields()
@ -642,7 +646,7 @@ function FormFields({
await postListFormFieldCopy({ ...values })
toast.push(<Notification type="success">{'Field Kopyalandı.'}</Notification>, {
placement: 'top-center',
placement: 'top-end',
})
handleCopyFieldFormClose()
} catch (error: any) {
@ -651,6 +655,7 @@ function FormFields({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)

View file

@ -137,6 +137,7 @@ function JsonRowOpDialogCommand({
<Notification type="success">
{data.index === -1 ? 'Kayıt eklendi' : 'Kayıt güncellendi'}
</Notification>,
{ placement: 'top-end' },
)
handleClose()
} catch (error: any) {
@ -145,6 +146,7 @@ function JsonRowOpDialogCommand({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)
@ -355,7 +357,9 @@ function JsonRowOpDialogCommand({
setSubmitting(true)
try {
await deleteListFormJsonRow(data.id, data.tabName, values.index)
toast.push(<Notification type="success">Kayıt silindi </Notification>)
toast.push(<Notification type="success">Kayıt silindi </Notification>, {
placement: 'top-end',
})
handleClose()
} catch (error: any) {
toast.push(
@ -363,6 +367,7 @@ function JsonRowOpDialogCommand({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)

View file

@ -122,6 +122,7 @@ function JsonRowOpDialogDatabase({
<Notification type="success">
{data.index === -1 ? 'Kayıt eklendi' : 'Kayıt güncellendi'}
</Notification>,
{ placement: 'top-end' },
)
handleClose()
} catch (error: any) {
@ -130,6 +131,7 @@ function JsonRowOpDialogDatabase({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)
@ -252,7 +254,9 @@ function JsonRowOpDialogDatabase({
setSubmitting(true)
try {
await deleteListFormJsonRow(data.id, data.tabName, values.index)
toast.push(<Notification type="success">Kayıt silindi </Notification>)
toast.push(<Notification type="success">Kayıt silindi </Notification>, {
placement: 'top-end',
})
handleClose()
} catch (error: any) {
toast.push(
@ -260,6 +264,7 @@ function JsonRowOpDialogDatabase({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)

View file

@ -18,11 +18,7 @@ import { useLocalization } from '@/utils/hooks/useLocalization'
import { Field, FieldArray, FieldProps, Form, Formik } from 'formik'
import groupBy from 'lodash/groupBy'
import { Dispatch, SetStateAction, useEffect, useState } from 'react'
import {
FaCalendarPlus,
FaCalendarMinus,
FaTag,
} from 'react-icons/fa'
import { FaCalendarPlus, FaCalendarMinus, FaTag } from 'react-icons/fa'
import { number, object, string } from 'yup'
import {
columnEditorTypeListOptions,
@ -109,7 +105,7 @@ function JsonRowOpDialogEditForm({
{error.toString()}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
}
@ -181,6 +177,7 @@ function JsonRowOpDialogEditForm({
<Notification type="success">
{data.index === -1 ? 'Kayıt eklendi' : 'Kayıt güncellendi'}
</Notification>,
{ placement: 'top-end' },
)
handleClose()
} catch (error: any) {
@ -189,6 +186,7 @@ function JsonRowOpDialogEditForm({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)
@ -767,6 +765,7 @@ function JsonRowOpDialogEditForm({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)

View file

@ -14,10 +14,7 @@ import { useStoreActions } from '@/store'
import { useLocalization } from '@/utils/hooks/useLocalization'
import { Field, FieldArray, FieldProps, Form, Formik } from 'formik'
import { Dispatch, SetStateAction } from 'react'
import {
FaCalendarPlus,
FaCalendarMinus,
} from 'react-icons/fa'
import { FaCalendarPlus, FaCalendarMinus } from 'react-icons/fa'
import { object, string } from 'yup'
import { tabTypeOptions } from '../options'
import { JsonRowDialogData } from './types'
@ -107,6 +104,7 @@ function JsonRowOpDialogSubForm({
<Notification type="success">
{data.index === -1 ? 'Kayıt eklendi' : 'Kayıt güncellendi'}
</Notification>,
{ placement: 'top-end' },
)
handleClose()
} catch (error: any) {
@ -115,6 +113,7 @@ function JsonRowOpDialogSubForm({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)
@ -281,6 +280,7 @@ function JsonRowOpDialogSubForm({
Hata
<code>{error}</code>
</Notification>,
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)

View file

@ -53,7 +53,7 @@ function CreateNotification({
{translate('::Kaydet')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
onDialogClose()
@ -63,7 +63,7 @@ function CreateNotification({
{'Hata'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {

View file

@ -227,7 +227,7 @@ const OrganizationUnits = () => {
{translate('::Kaydet')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -239,7 +239,7 @@ const OrganizationUnits = () => {
Hata
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -296,7 +296,7 @@ const OrganizationUnits = () => {
Hata
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -332,7 +332,7 @@ const OrganizationUnits = () => {
{translate('::Kaydet')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -343,7 +343,7 @@ const OrganizationUnits = () => {
Hata
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -365,7 +365,7 @@ const OrganizationUnits = () => {
{translate('::Kaydet')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -376,7 +376,7 @@ const OrganizationUnits = () => {
Hata
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -781,7 +781,7 @@ const OrganizationUnits = () => {
Updated
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
await fetchUsersAndRoles(activeOu)
@ -792,7 +792,7 @@ const OrganizationUnits = () => {
Hata
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -852,7 +852,7 @@ const OrganizationUnits = () => {
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
await fetchUsersAndRoles(activeOu)
@ -863,7 +863,7 @@ const OrganizationUnits = () => {
Hata
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -932,7 +932,7 @@ const OrganizationUnits = () => {
{translate('::KayitSilindi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} catch (error) {
@ -941,7 +941,7 @@ const OrganizationUnits = () => {
Hata
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -979,7 +979,7 @@ const OrganizationUnits = () => {
{translate('::Abp.Identity.OrganizationUnit.MoveAllUsersMessage')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
await fetchUsersAndRoles(values.id)
@ -990,7 +990,7 @@ const OrganizationUnits = () => {
Hata
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {

View file

@ -19,7 +19,14 @@ import {
CropperRef,
} from 'react-advanced-cropper'
import 'react-advanced-cropper/dist/style.css'
import { FaFacebookMessenger, FaEnvelope, FaTrashAlt, FaUserCircle, FaPhone, FaPlus } from 'react-icons/fa';
import {
FaFacebookMessenger,
FaEnvelope,
FaTrashAlt,
FaUserCircle,
FaPhone,
FaPlus,
} from 'react-icons/fa'
import * as Yup from 'yup'
import isEmpty from 'lodash/isEmpty'
import FormRow from '@/views/shared/FormRow'
@ -112,11 +119,11 @@ const General = () => {
})
toast.push(<Notification title={'Profil güncellendi'} type="success" />, {
placement: 'top-center',
placement: 'top-end',
})
} else {
toast.push(<Notification title={resp?.error?.message} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
setSubmitting(false)

View file

@ -8,7 +8,7 @@ import { useLocalization } from '@/utils/hooks/useLocalization'
import FormDesription from '@/views/shared/FormDesription'
import FormRow from '@/views/shared/FormRow'
import { Field, Form, Formik } from 'formik'
import { FaDesktop, FaMobileAlt, FaTabletAlt } from 'react-icons/fa';
import { FaDesktop, FaMobileAlt, FaTabletAlt } from 'react-icons/fa'
import * as Yup from 'yup'
type LoginHistory = {
@ -57,11 +57,11 @@ const Password = ({ data }: { data?: LoginHistory[] }) => {
const resp = await changePassword(values.password, values.newPassword)
if (resp.status === 204) {
toast.push(<Notification title={'Password updated'} type="success" />, {
placement: 'top-center',
placement: 'top-end',
})
} else {
toast.push(<Notification title={resp?.error?.message} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
setSubmitting(false)

View file

@ -46,7 +46,7 @@ const Roles = () => {
toast.push(
<RolesPermission open={true} name={'admin'} onDialogClose={() => {}}></RolesPermission>,
{
placement: 'top-center',
placement: 'top-end',
},
)
}}

View file

@ -106,7 +106,7 @@ function TenantConnectionString({
{translate('::AbpTenantManagement.Tenants.ConnectionStringDeleted')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
onDialogClose()
@ -116,7 +116,7 @@ function TenantConnectionString({
{'Hata'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -142,7 +142,7 @@ function TenantConnectionString({
{translate('::AbpTenantManagement.Tenants.ConnectionStringSaved')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -154,7 +154,7 @@ function TenantConnectionString({
{'Hata'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -181,7 +181,7 @@ function TenantConnectionString({
{translate('::AbpTenantManagement.Tenants.DatabaseSeeded')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} catch (error) {
@ -190,7 +190,7 @@ function TenantConnectionString({
{'Hata'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {

View file

@ -33,7 +33,7 @@ import dayjs from 'dayjs'
import { Field, FieldArray, FieldProps, Form, Formik, FormikHelpers } from 'formik'
import { useEffect, useState } from 'react'
import { Helmet } from 'react-helmet'
import { FaLockOpen, FaUser, FaFileAlt, FaTrashAlt } from 'react-icons/fa';
import { FaLockOpen, FaUser, FaFileAlt, FaTrashAlt } from 'react-icons/fa'
import { useParams } from 'react-router-dom'
import * as Yup from 'yup'
import { SelectBoxOption } from '@/shared/types'
@ -81,7 +81,7 @@ function UserDetails() {
{translate('::Kaydet')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
setOpen(false)
@ -92,7 +92,7 @@ function UserDetails() {
{'Hata'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {
@ -134,7 +134,7 @@ function UserDetails() {
{translate('Kaydet')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -375,7 +375,7 @@ function UserDetails() {
{'Lockout bilgileri kaydedildi.'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -752,7 +752,7 @@ function UserDetails() {
<Notification type="success" duration={2000}>
{translate('::Abp.Identity.User.ClaimDeleted')}
</Notification>,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
setConfirmDeleteClaim(null)
getUser()

View file

@ -104,7 +104,7 @@ const Users = () => {
updatePermissions(providerName, activeUser.id, { permissions: updatePermList })
toast.push(<Notification title={'Permission updated'} type="success" />, {
placement: 'top-center',
placement: 'top-end',
})
}

View file

@ -285,7 +285,7 @@ const RoomDetail: React.FC = () => {
if (!isActive) return
toast.push(<Notification title={`${name} sınıfa katıldı`} type="success" />, {
placement: 'top-center',
placement: 'top-end',
})
// Statee ekle
@ -370,7 +370,7 @@ const RoomDetail: React.FC = () => {
title={`Katılımcı ayrıldı: ${userName ?? 'Bilinmeyen'}`}
type="warning"
/>,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
}
@ -445,7 +445,7 @@ const RoomDetail: React.FC = () => {
title="❌ Sınıf servisleri başlatılamadı. Bağlantınızı veya tarayıcı izinlerini kontrol edin."
type="danger"
/>,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
}
}
@ -484,7 +484,9 @@ const RoomDetail: React.FC = () => {
// Başka sayfaya yönlendir
navigate(ROUTES_ENUM.protected.admin.classroom.classes)
} catch (err) {
toast.push(<Notification title="⚠️ Çıkış sırasında hata oluştu" type="warning" />)
toast.push(<Notification title="⚠️ Çıkış sırasında hata oluştu" type="warning" />, {
placement: 'top-end',
})
navigate(ROUTES_ENUM.protected.admin.classroom.classes)
}
}
@ -504,7 +506,9 @@ const RoomDetail: React.FC = () => {
user.role === 'teacher',
)
} catch (error) {
toast.push(<Notification title="❌ Özel mesaj gönderilemedi" type="danger" />)
toast.push(<Notification title="❌ Özel mesaj gönderilemedi" type="danger" />, {
placement: 'top-end',
})
}
} else if (messageMode === 'announcement' && user.role === 'teacher') {
try {
@ -516,7 +520,9 @@ const RoomDetail: React.FC = () => {
user.role === 'teacher',
)
} catch (error) {
toast.push(<Notification title="❌ Duyuru gönderilemedi" type="danger" />)
toast.push(<Notification title="❌ Duyuru gönderilemedi" type="danger" />, {
placement: 'top-end',
})
}
} else {
try {
@ -528,7 +534,9 @@ const RoomDetail: React.FC = () => {
user.role === 'teacher',
)
} catch (error) {
toast.push(<Notification title="❌ Genel mesaj gönderilemedi" type="danger" />)
toast.push(<Notification title="❌ Genel mesaj gönderilemedi" type="danger" />, {
placement: 'top-end',
})
}
}
setNewMessage('')
@ -549,7 +557,9 @@ const RoomDetail: React.FC = () => {
isTeacher,
)
} catch (err) {
toast.push(<Notification title="❌ Katılımcı susturulamadı" type="danger" />)
toast.push(<Notification title="❌ Katılımcı susturulamadı" type="danger" />, {
placement: 'top-end',
})
}
}
}
@ -609,7 +619,9 @@ const RoomDetail: React.FC = () => {
}),
)
} catch (error) {
toast.push(<Notification title="❌ Katılımcı atılamadı" type="danger" />)
toast.push(<Notification title="❌ Katılımcı atılamadı" type="danger" />, {
placement: 'top-end',
})
}
}
}
@ -672,7 +684,9 @@ const RoomDetail: React.FC = () => {
handleStopScreenShare()
}
} catch (error) {
toast.push(<Notification title="❌ Ekran paylaşımı başlatılamadı" type="danger" />)
toast.push(<Notification title="❌ Ekran paylaşımı başlatılamadı" type="danger" />, {
placement: 'top-end',
})
}
}

View file

@ -3,7 +3,7 @@ import navigationIcon from '@/configs/navigation-icon.config'
import { useLocalization } from '@/utils/hooks/useLocalization'
import CustomStore from 'devextreme/data/custom_store'
import { useState } from 'react'
import { FaPlus, FaTrash, FaEdit, FaFileAlt, FaSave } from 'react-icons/fa';
import { FaPlus, FaTrash, FaEdit, FaFileAlt, FaSave } from 'react-icons/fa'
import { useNavigate } from 'react-router-dom'
import { GridColumnData } from '../list/GridColumnData'
import { useToolbar } from '../list/useToolbar'
@ -82,12 +82,12 @@ const FormButtons = (props: {
{translate('::ListForms.FormBilgileriSilindi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} catch (error: any) {
toast.push(<Notification title={error.message} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
} finally {
setLoading(false)
@ -200,7 +200,11 @@ const FormButtons = (props: {
if (onActionEdit) {
onActionEdit()
} else {
navigate(ROUTES_ENUM.protected.admin.formEdit.replace(':listFormCode', listFormCode).replace(':id', id!))
navigate(
ROUTES_ENUM.protected.admin.formEdit
.replace(':listFormCode', listFormCode)
.replace(':id', id!),
)
}
}}
{...(permissions.u ? {} : { disabled: true })}
@ -217,7 +221,11 @@ const FormButtons = (props: {
if (onActionView) {
onActionView()
} else {
navigate(ROUTES_ENUM.protected.admin.formView.replace(':listFormCode', listFormCode).replace(':id', id!))
navigate(
ROUTES_ENUM.protected.admin.formView
.replace(':listFormCode', listFormCode)
.replace(':id', id!),
)
}
}}
{...(permissions.r ? {} : { disabled: true })}

View file

@ -67,7 +67,7 @@ const useGridData = (props: {
}
} catch (error: any) {
toast.push(<Notification title={error.message} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
} finally {
setLoading(false)
@ -101,7 +101,7 @@ const useGridData = (props: {
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} else {
@ -139,7 +139,7 @@ const useGridData = (props: {
{translate('::ListForms.FormBilgileriKaydedildi')}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} else {
@ -148,7 +148,7 @@ const useGridData = (props: {
}
} catch (error: any) {
toast.push(<Notification title={error.message} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
} finally {
setLoading(false)

View file

@ -319,7 +319,7 @@ const Grid = (props: GridProps) => {
{e.error?.message}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
}
@ -497,7 +497,7 @@ const Grid = (props: GridProps) => {
<Notification type="danger" duration={2500}>
{translate('::App.Common.ExportError') ?? 'Dışa aktarma sırasında hata oluştu.'}
</Notification>,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
}
}

View file

@ -80,7 +80,7 @@ const GridFilterDialogs = (props: {
{'Filter not found'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
return
@ -97,7 +97,7 @@ const GridFilterDialogs = (props: {
{'Filter Saved'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
@ -152,7 +152,7 @@ const GridFilterDialogs = (props: {
{'Filter Deleted'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)

View file

@ -279,7 +279,7 @@ const useFilters = ({
{error.message}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} finally {

View file

@ -142,7 +142,7 @@ const useToolbar = ({
{'Tüm kayıtlar silindi.'}
</Notification>,
{
placement: 'top-center',
placement: 'top-end',
},
)

View file

@ -20,11 +20,7 @@ import {
import { Field, FieldProps, Form, Formik } from 'formik'
import { SelectBoxOption } from '@/shared/types'
import * as Yup from 'yup'
import {
FaExternalLinkAlt,
FaPlus,
FaTrashAlt
} from 'react-icons/fa';
import { FaExternalLinkAlt, FaPlus, FaTrashAlt } from 'react-icons/fa'
import { MenuDto } from '@/proxy/menus/models'
interface MenuItemComponentProps {
@ -194,7 +190,7 @@ export const MenuItemComponent: React.FC<MenuItemComponentProps> = ({
<Notification title="Başarılı" type="success">
{translate('::KayitEklendi')}
</Notification>,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
setIsModalOpen(false)
refetch()
@ -203,7 +199,7 @@ export const MenuItemComponent: React.FC<MenuItemComponentProps> = ({
<Notification title="Hata" type="danger">
{translate('::IslemBasarisiz')}
</Notification>,
{ placement: 'top-center' },
{ placement: 'top-end' },
)
} finally {
setSubmitting(false)

View file

@ -21,7 +21,7 @@ import { Field, FieldProps, Form, Formik } from 'formik'
import isEmpty from 'lodash/isEmpty'
import { useEffect, useMemo, useState } from 'react'
import { Helmet } from 'react-helmet'
import { FaQuestionCircle } from 'react-icons/fa';
import { FaQuestionCircle } from 'react-icons/fa'
type Option = {
value: string
@ -76,17 +76,17 @@ const Settings = () => {
title={
translate('::' + activeGroupName) +
' ' +
translate('::SuccessfullySaved', 'AbpSettingManagement')
translate('AbpSettingManagement::SuccessfullySaved')
}
type="success"
/>,
{
placement: 'top-center',
placement: 'top-end',
},
)
} else {
toast.push(<Notification title={resp?.error?.message} type="danger" />, {
placement: 'top-center',
placement: 'top-end',
})
}
//getConfig değiştiriliyor.