Browse Source

#47

feature/047
みてるぞ 2 days ago
parent
commit
fb275b4763
5 changed files with 14 additions and 16 deletions
  1. +1
    -1
      backend/app/controllers/wiki_assets_controller.rb
  2. +4
    -0
      backend/app/models/wiki_asset.rb
  3. +0
    -12
      frontend/src/components/WikiBody.tsx
  4. +4
    -3
      frontend/src/components/WikiEditForm.tsx
  5. +5
    -0
      frontend/src/types.ts

+ 1
- 1
backend/app/controllers/wiki_assets_controller.rb View File

@@ -33,6 +33,6 @@ class WikiAssetsController < ApplicationController
page.update!(next_asset_no: no + 1)
end

render json: asset
render json: asset.as_json(methods: [:url])
end
end

+ 4
- 0
backend/app/models/wiki_asset.rb View File

@@ -7,4 +7,8 @@ class WikiAsset < ApplicationRecord
has_one_attached :file

validates :file, presence: true

def url
Rails.application.routes.url_helpers.rails_blob_url(file, only_path: true)
end
end

+ 0
- 12
frontend/src/components/WikiBody.tsx View File

@@ -1,18 +1,6 @@
import { useQuery } from '@tanstack/react-query'
import { useMemo } from 'react'
import ReactMarkdown from 'react-markdown'
import remarkGFM from 'remark-gfm'

import PrefetchLink from '@/components/PrefetchLink'
import WikiMarkdown from '@/components/WikiMarkdown'
import SectionTitle from '@/components/common/SectionTitle'
import SubsectionTitle from '@/components/common/SubsectionTitle'
import { wikiKeys } from '@/lib/queryKeys'
import remarkWikiAutoLink from '@/lib/remark-wiki-autolink'
import { fetchWikiPages } from '@/lib/wiki'

import type { FC } from 'react'
import type { Components } from 'react-markdown'

type Props = { title: string
body?: string }


+ 4
- 3
frontend/src/components/WikiEditForm.tsx View File

@@ -1,12 +1,13 @@
import MarkdownIt from 'markdown-it'
import { useEffect, useState } from 'react'
import MdEditor from 'react-markdown-editor-lite'

import WikiMarkdown from '@/components/WikiMarkdown'
import Label from '@/components/common/Label'
import { apiPost } from '@/lib/api'

import type { FC } from 'react'

const mdParser = new MarkdownIt
import type { WikiAsset } from '@/types'

type Props = {
title: string
@@ -60,7 +61,7 @@ export default (({ title: initTitle, body: initBody, onSubmit, id }: Props) => {
<MdEditor
value={body}
style={{ height: '500px' }}
renderHTML={text => mdParser.render (text)}
renderHTML={text => <WikiMarkdown body={text} preview/>}
onChange={({ text }) => setBody (text)}
onImageUpload={handleImageUpload}/>
</div>


+ 5
- 0
frontend/src/types.ts View File

@@ -149,6 +149,11 @@ export type User = {

export type ViewFlagBehavior = typeof ViewFlagBehavior[keyof typeof ViewFlagBehavior]

export type WikiAsset = {
wikiPageId: number
no: number
url: string }

export type WikiPage = {
id: number
title: string


Loading…
Cancel
Save