aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/dashboard/UploadDropzone.tsx
diff options
context:
space:
mode:
authorRodrigo Santos <rr.santos1232@gmail.com>2025-07-13 23:45:06 +0100
committerGitHub <noreply@github.com>2025-07-13 23:45:06 +0100
commitecb13cec5d5c646308b34c714401a716f3cdf199 (patch)
treebfa3d2aa25778a87c1bf3884ab5150ff075e9338 /apps/web/components/dashboard/UploadDropzone.tsx
parent0addc7bc329671460509d39a841293a321971584 (diff)
downloadkarakeep-ecb13cec5d5c646308b34c714401a716f3cdf199.tar.zst
feat: markdown file upload support (#1647) (#1672)
* feat: Add support for uploading Markdown (.md) files * add: markdown to supported bookmark assets * revert the changes in the assetdb --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
Diffstat (limited to 'apps/web/components/dashboard/UploadDropzone.tsx')
-rw-r--r--apps/web/components/dashboard/UploadDropzone.tsx23
1 files changed, 20 insertions, 3 deletions
diff --git a/apps/web/components/dashboard/UploadDropzone.tsx b/apps/web/components/dashboard/UploadDropzone.tsx
index df7bae0a..2bac005e 100644
--- a/apps/web/components/dashboard/UploadDropzone.tsx
+++ b/apps/web/components/dashboard/UploadDropzone.tsx
@@ -45,8 +45,25 @@ export function useUploadAsset() {
});
return useCallback(
- (file: File) => {
- return runUploadAsset(file);
+ async (file: File) => {
+ // Handle markdown files as text bookmarks
+ if (file.type === "text/markdown" || file.name.endsWith(".md")) {
+ try {
+ const content = await file.text();
+ await createBookmark({
+ type: BookmarkTypes.TEXT,
+ text: content,
+ title: file.name.replace(/\.md$/i, ""), // Remove .md extension from title
+ });
+ } catch {
+ toast({
+ description: `${file.name}: Failed to read markdown file`,
+ variant: "destructive",
+ });
+ }
+ } else {
+ return runUploadAsset(file);
+ }
},
[runUploadAsset],
);
@@ -134,7 +151,7 @@ export default function UploadDropzone({
</div>
) : (
<p className="text-2xl font-bold text-gray-700">
- Drop Your Image / Bookmark file
+ Drop Your Image / PDF / Markdown file
</p>
)}
</div>