fix styles
for MarkdownEditor
This commit is contained in:
parent
0365b9368d
commit
b8e7fd562e
63
src/components/MarkdownEditor.tsx
Normal file
63
src/components/MarkdownEditor.tsx
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import {styled} from '@mui/material/styles'
|
||||||
|
import SimpleMDE, {SimpleMDEReactProps} from 'react-simplemde-editor'
|
||||||
|
|
||||||
|
const StyledMarkdownEditor = styled('div')(({theme}) => ({
|
||||||
|
'& .editor-toolbar': {
|
||||||
|
backgroundColor: theme.palette.background.paper,
|
||||||
|
borderColor: theme.palette.divider,
|
||||||
|
},
|
||||||
|
'& .editor-toolbar button': {
|
||||||
|
color: theme.palette.text.primary,
|
||||||
|
},
|
||||||
|
'& .editor-toolbar button:hover': {
|
||||||
|
backgroundColor: theme.palette.action.hover,
|
||||||
|
},
|
||||||
|
'& .editor-toolbar button:active, & .editor-toolbar button.active': {
|
||||||
|
backgroundColor: theme.palette.action.selected,
|
||||||
|
},
|
||||||
|
'& .editor-statusbar': {
|
||||||
|
display: 'none',
|
||||||
|
},
|
||||||
|
// Стили для самого редактора
|
||||||
|
'& .CodeMirror': {
|
||||||
|
backgroundColor: theme.palette.background.paper,
|
||||||
|
color: theme.palette.text.primary,
|
||||||
|
borderColor: theme.palette.divider,
|
||||||
|
},
|
||||||
|
// Стили для текста в редакторе
|
||||||
|
'& .CodeMirror-selected': {
|
||||||
|
backgroundColor: `${theme.palette.action.selected} !important`,
|
||||||
|
},
|
||||||
|
'& .CodeMirror-cursor': {
|
||||||
|
borderLeftColor: theme.palette.text.primary,
|
||||||
|
},
|
||||||
|
// Стили для markdown разметки
|
||||||
|
'& .cm-header': {
|
||||||
|
color: theme.palette.primary.main,
|
||||||
|
},
|
||||||
|
'& .cm-quote': {
|
||||||
|
color: theme.palette.text.secondary,
|
||||||
|
fontStyle: 'italic',
|
||||||
|
},
|
||||||
|
'& .cm-link': {
|
||||||
|
color: theme.palette.primary.main,
|
||||||
|
},
|
||||||
|
'& .cm-url': {
|
||||||
|
color: theme.palette.secondary.main,
|
||||||
|
},
|
||||||
|
'& .cm-formatting': {
|
||||||
|
color: theme.palette.text.secondary,
|
||||||
|
},
|
||||||
|
|
||||||
|
'& .CodeMirror .editor-preview-full': {
|
||||||
|
backgroundColor: theme.palette.background.paper,
|
||||||
|
color: theme.palette.text.primary,
|
||||||
|
borderColor: theme.palette.divider,
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
|
||||||
|
export const MarkdownEditor = (props: SimpleMDEReactProps) => (
|
||||||
|
<StyledMarkdownEditor className="my-markdown-editor">
|
||||||
|
<SimpleMDE {...props} />
|
||||||
|
</StyledMarkdownEditor>
|
||||||
|
)
|
@ -1,5 +1,4 @@
|
|||||||
@import './stylesheets/hidden-functionality.css';
|
@import './stylesheets/hidden-functionality.css';
|
||||||
@import './stylesheets/markdown-editor.css';
|
|
||||||
|
|
||||||
.limited-text {
|
.limited-text {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -4,10 +4,10 @@ import {useForm} from '@refinedev/react-hook-form'
|
|||||||
import {Controller} from 'react-hook-form'
|
import {Controller} from 'react-hook-form'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
import SimpleMDE from 'react-simplemde-editor'
|
import {MarkdownEditor} from '../../components/MarkdownEditor'
|
||||||
import 'easymde/dist/easymde.min.css'
|
import 'easymde/dist/easymde.min.css'
|
||||||
|
|
||||||
const MemoizedSimpleMDE = React.memo(SimpleMDE)
|
const MemoizedSimpleMDE = React.memo(MarkdownEditor)
|
||||||
|
|
||||||
export const ArticleCreate = () => {
|
export const ArticleCreate = () => {
|
||||||
const {
|
const {
|
||||||
@ -47,7 +47,20 @@ export const ArticleCreate = () => {
|
|||||||
name="heading"
|
name="heading"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Controller control={control} name="body" rules={{required: 'Это поле является обязательным'}} defaultValue="" render={({field: {onChange, value}}) => <MemoizedSimpleMDE value={value} onChange={onChange} options={simpleMDEOptions} className="my-markdown-editor" />} />
|
<Controller
|
||||||
|
control={control}
|
||||||
|
name="body"
|
||||||
|
rules={{required: 'Это поле является обязательным'}}
|
||||||
|
defaultValue=""
|
||||||
|
render={({field: {onChange, value}}) => (
|
||||||
|
<MemoizedSimpleMDE
|
||||||
|
value={value} // markdown
|
||||||
|
onChange={onChange}
|
||||||
|
options={simpleMDEOptions}
|
||||||
|
className="my-markdown-editor"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
</Create>
|
</Create>
|
||||||
)
|
)
|
||||||
|
@ -4,10 +4,10 @@ import {useForm} from '@refinedev/react-hook-form'
|
|||||||
import {Controller} from 'react-hook-form'
|
import {Controller} from 'react-hook-form'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
import SimpleMDE from 'react-simplemde-editor'
|
import {MarkdownEditor} from '../../components/MarkdownEditor'
|
||||||
import 'easymde/dist/easymde.min.css'
|
import 'easymde/dist/easymde.min.css'
|
||||||
|
|
||||||
const MemoizedSimpleMDE = React.memo(SimpleMDE)
|
const MemoizedSimpleMDE = React.memo(MarkdownEditor)
|
||||||
|
|
||||||
export const ArticleEdit = () => {
|
export const ArticleEdit = () => {
|
||||||
const {
|
const {
|
||||||
@ -42,7 +42,20 @@ export const ArticleEdit = () => {
|
|||||||
name="heading"
|
name="heading"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Controller control={control} name="body" rules={{required: 'Это поле является обязательным'}} defaultValue="" render={({field: {onChange, value}}) => <MemoizedSimpleMDE value={value} onChange={onChange} options={simpleMDEOptions} className="my-markdown-editor" />} />
|
<Controller
|
||||||
|
control={control}
|
||||||
|
name="body"
|
||||||
|
rules={{required: 'Это поле является обязательным'}}
|
||||||
|
defaultValue=""
|
||||||
|
render={({field: {onChange, value}}) => (
|
||||||
|
<MemoizedSimpleMDE
|
||||||
|
value={value} // markdown
|
||||||
|
onChange={onChange}
|
||||||
|
options={simpleMDEOptions}
|
||||||
|
className="my-markdown-editor"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
</Edit>
|
</Edit>
|
||||||
)
|
)
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
.my-markdown-editor .editor-statusbar {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-markdown-editor .CodeMirror {
|
|
||||||
background-color: transparent !important;
|
|
||||||
color: white !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-markdown-editor .CodeMirror-gutters {
|
|
||||||
background-color: transparent !important;
|
|
||||||
border-right: 1px solid #444;
|
|
||||||
color: white !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-markdown-editor .CodeMirror-cursor {
|
|
||||||
border-left: 1px solid white !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-markdown-editor .editor-toolbar i {
|
|
||||||
color: white !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-markdown-editor .editor-toolbar button:hover i {
|
|
||||||
color: #000 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-markdown-editor .editor-toolbar button.active i {
|
|
||||||
color: #000 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-markdown-editor .editor-toolbar .separator {
|
|
||||||
color: transparent !important;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user