diff --git a/src/state/drafts/index.ts b/src/state/drafts/index.ts
deleted file mode 100644
index a6a0003e2e..0000000000
--- a/src/state/drafts/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from './api'
-export * from './hooks'
-export * from './schema'
diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx
index eaa775c1ed..7c01414d5a 100644
--- a/src/view/com/composer/Composer.tsx
+++ b/src/view/com/composer/Composer.tsx
@@ -76,13 +76,6 @@ import {cleanError} from '#/lib/strings/errors'
import {colors} from '#/lib/styles'
import {logger} from '#/logger'
import {useDialogStateControlContext} from '#/state/dialogs'
-import {
- type DraftSummary,
- draftToComposerPosts,
- threadgateToUISettings,
- useLoadDraft,
- useSaveDraft,
-} from '#/state/drafts'
import {emitPostCreated} from '#/state/events'
import {
type ComposerImage,
@@ -139,6 +132,13 @@ import {Text as NewText} from '#/components/Typography'
import {useAnalytics} from '#/analytics'
import {IS_ANDROID, IS_IOS, IS_NATIVE, IS_WEB} from '#/env'
import {BottomSheetPortalProvider} from '../../../../modules/bottom-sheet'
+import {
+ draftToComposerPosts,
+ threadgateToUISettings,
+ useLoadDraft,
+ useSaveDraft,
+} from './drafts/state/hooks'
+import {type DraftSummary} from './drafts/state/schema'
import {PostLanguageSelect} from './select-language/PostLanguageSelect'
import {
type AssetType,
diff --git a/src/view/com/composer/drafts/DraftItem.tsx b/src/view/com/composer/drafts/DraftItem.tsx
index bd051e0b1c..9aac81677e 100644
--- a/src/view/com/composer/drafts/DraftItem.tsx
+++ b/src/view/com/composer/drafts/DraftItem.tsx
@@ -5,12 +5,6 @@ import {type AppBskyEmbedImages} from '@atproto/api'
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
-import {
- type DraftPostDisplay,
- type DraftSummary,
- type LocalMediaDisplay,
-} from '#/state/drafts'
-import * as storage from '#/state/drafts/storage'
import {useCurrentAccountProfile} from '#/state/queries/useCurrentAccountProfile'
import {useSession} from '#/state/session'
import {TimeElapsed} from '#/view/com/util/TimeElapsed'
@@ -22,6 +16,12 @@ import {AutoSizedImage} from '#/components/images/AutoSizedImage'
import {ImageLayoutGrid} from '#/components/images/ImageLayoutGrid'
import * as Prompt from '#/components/Prompt'
import {Text} from '#/components/Typography'
+import {
+ type DraftPostDisplay,
+ type DraftSummary,
+ type LocalMediaDisplay,
+} from './state/schema'
+import * as storage from './state/storage'
export function DraftItem({
draft,
@@ -193,9 +193,17 @@ function DraftPostRow({
{/* Post text - full, not truncated */}
{post.text ? (
- {post.text}
+
+ {post.text}
+
) : (
-
+
(No text)
)}
@@ -267,7 +275,7 @@ function DraftMediaPreview({post}: {post: DraftPostDisplay}) {
}
return (
-
+
{/* Images - use real embed components */}
{viewImages.length === 1 && (
diff --git a/src/view/com/composer/drafts/DraftsButton.tsx b/src/view/com/composer/drafts/DraftsButton.tsx
index 9f3563b6e0..efe411184a 100644
--- a/src/view/com/composer/drafts/DraftsButton.tsx
+++ b/src/view/com/composer/drafts/DraftsButton.tsx
@@ -1,12 +1,13 @@
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
-import {type DraftSummary, useSaveDraft} from '#/state/drafts'
import {atoms as a} from '#/alf'
import {Button, ButtonText} from '#/components/Button'
import * as Dialog from '#/components/Dialog'
import * as Prompt from '#/components/Prompt'
import {DraftsListDialog} from './DraftsListDialog'
+import {useSaveDraft} from './state/hooks'
+import {type DraftSummary} from './state/schema'
export function DraftsButton({
onSelectDraft,
diff --git a/src/view/com/composer/drafts/DraftsListDialog.tsx b/src/view/com/composer/drafts/DraftsListDialog.tsx
index 8db7006f61..3fb943054d 100644
--- a/src/view/com/composer/drafts/DraftsListDialog.tsx
+++ b/src/view/com/composer/drafts/DraftsListDialog.tsx
@@ -4,14 +4,15 @@ import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {isNative} from '#/platform/detection'
-import {type DraftSummary, useDeleteDraft, useDrafts} from '#/state/drafts'
+import {EmptyState} from '#/view/com/util/EmptyState'
import {atoms as a, useTheme, web} from '#/alf'
import {Button, ButtonText} from '#/components/Button'
import * as Dialog from '#/components/Dialog'
import {PageX_Stroke2_Corner0_Rounded_Large as PageXIcon} from '#/components/icons/PageX'
import {Loader} from '#/components/Loader'
-import {EmptyState} from '../../util/EmptyState'
import {DraftItem} from './DraftItem'
+import {useDeleteDraft, useDrafts} from './state/hooks'
+import {type DraftSummary} from './state/schema'
export function DraftsListDialog({
control,
diff --git a/src/state/drafts/api.ts b/src/view/com/composer/drafts/state/api.ts
similarity index 100%
rename from src/state/drafts/api.ts
rename to src/view/com/composer/drafts/state/api.ts
diff --git a/src/state/drafts/hooks.ts b/src/view/com/composer/drafts/state/hooks.ts
similarity index 100%
rename from src/state/drafts/hooks.ts
rename to src/view/com/composer/drafts/state/hooks.ts
diff --git a/src/state/drafts/logger.ts b/src/view/com/composer/drafts/state/logger.ts
similarity index 100%
rename from src/state/drafts/logger.ts
rename to src/view/com/composer/drafts/state/logger.ts
diff --git a/src/state/drafts/schema.ts b/src/view/com/composer/drafts/state/schema.ts
similarity index 100%
rename from src/state/drafts/schema.ts
rename to src/view/com/composer/drafts/state/schema.ts
diff --git a/src/state/drafts/storage.ts b/src/view/com/composer/drafts/state/storage.ts
similarity index 100%
rename from src/state/drafts/storage.ts
rename to src/view/com/composer/drafts/state/storage.ts
diff --git a/src/state/drafts/storage.web.ts b/src/view/com/composer/drafts/state/storage.web.ts
similarity index 100%
rename from src/state/drafts/storage.web.ts
rename to src/view/com/composer/drafts/state/storage.web.ts