Repository navigation
fix(markdown): imagem no editor vira upload real, nao base64 - #58
Merged
Merged
Conversation
Dois problemas na abordagem anterior (PR #56): 1. react-markdown bloqueia data: URI por padrao (defaultUrlTransform sanitiza e zera a URL) — por isso a imagem aparecia quebrada no preview. 2. Base64 embutido no texto nao e' o padrao certo pra isso (infla o campo, duplica em todo fetch do conteudo). O jeito certo, como em qualquer editor decente (TinyMCE etc.), e' fazer upload de verdade e guardar so a URL — que e' exatamente o que ja fazemos no comprovante de prova (ProofSubmissionForm / useFileUploadService). Reaproveita esse mesmo pipeline: paste ou clique em "Inserir imagem" sobem o arquivo pro storage (R2/S3, mesmo endpoint /files/upload) e o markdown so guarda , que passa normal pelo sanitizador do react-markdown. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Bug reportado
Imagem inserida no editor de markdown aparecia quebrada no preview.
Causa raiz
react-markdownsanitiza URLs por padrao e bloqueia o esquemadata:(confirmado testandodefaultUrlTransformdiretamente — retorna string vazia pra data URI, passa normal pra https). A abordagem anterior (PR #56) embutia a imagem como base64 no proprio texto markdown, que e' exatamente o que fica bloqueado.Alem disso, base64 embutido no campo de texto nao e' o padrao certo — infla o campo (um print de 500KB vira ~700KB de texto), duplica em todo fetch do conteudo, e nao e' assim que editores como TinyMCE fazem (eles fazem upload de verdade e so guardam a URL).
Fix
Reaproveita o pipeline de upload que ja existe no projeto (
useFileUploadService, o mesmo usado no comprovante de prova) — paste ou clique em "Inserir imagem" sobem o arquivo pro storage e o markdown guarda, que passa normal pelo sanitizador.Test plan
npx tsc --noEmitnpx eslint src/components/markdown-editor.tsx— limpodefaultUrlTransformbloqueiadata:e aceitahttps:Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com