Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
c393e83
feat(context): persist typed inline context references
chrisdeeming Sep 5, 2026
2075253
fix(context): address foundation review findings and unused exports
chrisdeeming Sep 6, 2026
1d250c8
fix(context): preserve reference targets and reject ambiguous identities
chrisdeeming Sep 6, 2026
5a44933
fix(context): bound future context payloads
chrisdeeming Sep 6, 2026
114d944
fix(context): load context in the optimized turn-start query
chrisdeeming Sep 6, 2026
0276459
fix(context): preserve malformed legacy context as text
chrisdeeming Sep 6, 2026
abaf569
fix(context): distinguish preview boundaries from literal opening tags
chrisdeeming Sep 6, 2026
e7bfeeb
fix(context): preserve invalid legacy input and reject ambiguous uploads
chrisdeeming Sep 7, 2026
96f04ad
fix(contracts): retain structured preview style edits for context tra…
chrisdeeming Sep 7, 2026
7915972
fix(context): normalize labels on manually entered references
chrisdeeming Sep 7, 2026
464d5c5
fix(context): bound aggregate payloads and preserve terminal token bo…
chrisdeeming Sep 7, 2026
b4bcd30
fix(shared): upgrade terminal labels before punctuation
chrisdeeming Sep 7, 2026
b421200
fix(shared): preserve malformed legacy context and token boundaries
chrisdeeming Sep 7, 2026
a2bc14a
fix(shared): preserve malformed legacy context atomically
chrisdeeming Sep 7, 2026
aa473ed
fix(shared): preserve review-shaped legacy context payloads
chrisdeeming Sep 7, 2026
5e5c899
fix(server): scope duplicate attachment IDs to turns
chrisdeeming Sep 8, 2026
7b6efd2
fix(server): project context before provider send
chrisdeeming Sep 8, 2026
1d6eeb4
test(server): use effect test runtime for context projection
chrisdeeming Sep 8, 2026
28b46b8
fix(shared): preserve markdown hard breaks during context upgrade
chrisdeeming Sep 8, 2026
e234ce2
fix(server): tolerate renumbered context migration
chrisdeeming Sep 9, 2026
e2a5f39
feat(web): move composer context into inline references
chrisdeeming Sep 5, 2026
4574273
refactor(web): remove unused context helper exports
chrisdeeming Sep 6, 2026
7764a05
refactor(web): defer paste helpers to the clipboard layer
chrisdeeming Sep 6, 2026
b21cb84
fix(web): keep composer context references and draft records in sync
chrisdeeming Sep 7, 2026
a1d00c2
fix(web): serialize exact preview style targets and values
chrisdeeming Sep 7, 2026
b1185fb
test(web): cover structured annotation output in the composer layer
chrisdeeming Sep 7, 2026
7272c42
fix(web): normalize legacy terminal identities and context-only titles
chrisdeeming Sep 7, 2026
e9cd766
fix(web): preserve malformed history and focus tooltip-only context
chrisdeeming Sep 7, 2026
22a8cba
fix(web): namespace context identities and migrate persisted references
chrisdeeming Sep 7, 2026
f3c831b
fix(web): resolve scoped references in the draft chip registry
chrisdeeming Sep 7, 2026
ed4fd64
fix(web): hide standalone images already referenced inline
chrisdeeming Sep 7, 2026
4c84161
fix(web): report replacement attachments as accepted
chrisdeeming Sep 7, 2026
293b315
fix(web): recall preview comments containing literal tag lines
chrisdeeming Sep 7, 2026
69d946f
fix(web): preserve composer context identity and insertion behavior
chrisdeeming Sep 7, 2026
c2a93ad
fix(web): prefer canonical context links during draft migration
chrisdeeming Sep 7, 2026
0ed14af
fix(web): bind annotation screenshots only to images
chrisdeeming Sep 7, 2026
cec9a24
fix(web): restore file references with draft attachments
chrisdeeming Sep 7, 2026
0caf030
fix(web): synchronize bulk preview annotation references
chrisdeeming Sep 7, 2026
af2c606
fix(web): preserve composer context across servers, undo and large se…
chrisdeeming Sep 7, 2026
bc6c0cf
fix(web): preserve single-image draft contract
chrisdeeming Sep 8, 2026
d9a66be
fix(web): retain file attachment list after rebase
chrisdeeming Sep 8, 2026
263c11d
fix(web): retain attachment context through undo
chrisdeeming Sep 8, 2026
9415a98
fix(web): keep inline files inside composer
chrisdeeming Sep 9, 2026
693e6a5
fix(web): preserve context in plan feedback and saved drafts
juliusmarminge Sep 9, 2026
5c74b6b
feat(context): preserve references across copy paste and stash
chrisdeeming Sep 5, 2026
01d68e4
fix(context): export record limit with its clipboard consumer
chrisdeeming Sep 6, 2026
d6e1820
fix(web): preserve context popovers in copied selections
chrisdeeming Sep 6, 2026
38c3039
refactor(context): introduce paste helpers with their consumers
chrisdeeming Sep 6, 2026
04e0697
fix(clipboard): align fragment budgets and refresh stash context call…
chrisdeeming Sep 7, 2026
bd82674
fix(clipboard): restore preview styles from structured edit data
chrisdeeming Sep 7, 2026
56f229e
fix(mobile): mask context labels in the compatibility review parser
chrisdeeming Sep 7, 2026
956db8d
fix(clipboard): protect plain text and bound attachment downloads
chrisdeeming Sep 7, 2026
948976b
fix(clipboard): import draft context without an active thread
chrisdeeming Sep 7, 2026
0d55866
fix(clipboard): retain canonical positions for structured message copy
chrisdeeming Sep 7, 2026
72a1c31
fix(web): preserve imported context ids and memoized chip rendering
chrisdeeming Sep 7, 2026
2c67857
fix(web): keep context renderer dependencies precise
chrisdeeming Sep 7, 2026
2d78da9
fix(web): preserve restorable attachment context in copy and stash
chrisdeeming Sep 7, 2026
d6f261c
fix(web): keep pasted context distinct and annotation screenshots intact
chrisdeeming Sep 7, 2026
6ec5527
fix(web): preserve dependent clipboard context
chrisdeeming Sep 8, 2026
f97fd12
fix(clipboard): reuse attachments already in draft
chrisdeeming Sep 9, 2026
664dc16
fix(web): import structured context through both paste entry points
juliusmarminge Sep 9, 2026
272d85d
feat(web): unify context chip presentation and previews
chrisdeeming Sep 5, 2026
927c93f
refactor(web): share context chip slots and media dialog styling
chrisdeeming Sep 6, 2026
4fd7d44
refactor(web): reuse the shared terminal context popover
chrisdeeming Sep 6, 2026
fe1cf2c
refactor(web): reuse pull request state presentation
chrisdeeming Sep 6, 2026
3cee914
fix(web): vertically align inline context chips
chrisdeeming Sep 6, 2026
6d9a154
refactor(web): share the inline context chip shell
chrisdeeming Sep 6, 2026
e65a14a
refactor(web): share the file context chip shell
chrisdeeming Sep 6, 2026
b017e9c
refactor(web): reuse the shared shell for terminal tooltips
chrisdeeming Sep 6, 2026
74f82bd
fix(web): expose unavailable file chip details to keyboard users
chrisdeeming Sep 7, 2026
bbce8d1
test(web): retain review fence and source-comment regressions
chrisdeeming Sep 7, 2026
caefc6c
fix(web): render every known transcript context kind safely
chrisdeeming Sep 7, 2026
7819577
fix(web): show unavailable state for empty annotation screenshots
chrisdeeming Sep 7, 2026
adea81e
merge: sync inline context presentation with upstream main
chrisdeeming Sep 7, 2026
8f41e93
fix(web): keep snapshot details components private
chrisdeeming Sep 8, 2026
17f3c55
fix(web): compose context chips with button primitive
chrisdeeming Sep 8, 2026
02737df
fix(web): preserve inline chip geometry
chrisdeeming Sep 9, 2026
ecc56a1
fix(web): wrap backward media navigation across full cycles
juliusmarminge Sep 9, 2026
419434d
feat(web): autocomplete repository pull request references
chrisdeeming Sep 5, 2026
1e1be34
fix(web): rank exact pull request matches ahead of substring matches
chrisdeeming Sep 7, 2026
21827f7
refactor(context): share exact pull request match ordering
juliusmarminge Sep 9, 2026
5e6634d
feat(mobile): bring inline context to native composer and chat
chrisdeeming Sep 7, 2026
2b87afc
fix(mobile): satisfy native checks for context handling
chrisdeeming Sep 7, 2026
3f32498
fix(mobile): retain context through pending task recovery
chrisdeeming Sep 7, 2026
ebe802b
fix(mobile): keep context attachment edits atomic and labels opaque
chrisdeeming Sep 7, 2026
f39d218
test(clipboard): preserve rich HTML alongside context metadata
chrisdeeming Sep 7, 2026
8898b0c
fix(mobile): preserve recovery context and resolve draft-only clipboa…
chrisdeeming Sep 7, 2026
6bddda6
fix(mobile): retain live recovery records while bounding undo history
chrisdeeming Sep 7, 2026
0f390db
fix(web): centralize media dialog and control variants
chrisdeeming Sep 7, 2026
c682984
fix(mobile): preserve context on legacy hosts and prioritize exact PR…
juliusmarminge Sep 9, 2026
fdc7aa4
fix(mobile): preserve context through draft reload and undo
juliusmarminge Sep 9, 2026
d7148da
fix(mobile): match the default user bubble to web's message surface
chrisdeeming Sep 9, 2026
400084c
fix(mobile): show only media above the composer and place the caret a…
chrisdeeming Sep 9, 2026
49025a1
fix(context): report a size on every attachment chip
chrisdeeming Sep 9, 2026
5d43b11
fix(mobile): give Android chips their size and picture identity
chrisdeeming Sep 9, 2026
d319572
fix(mobile): treat a picked picture as a picture, whichever picker fo…
chrisdeeming Sep 9, 2026
d655ebc
fix(context): keep a picture a picture through send and render
chrisdeeming Sep 9, 2026
0a11289
fix(web): keep a picture's thumbnail when it also has a chip
chrisdeeming Sep 9, 2026
e79b156
fix(web): size sent media to sit beside its chip
chrisdeeming Sep 9, 2026
6544f8b
fix(mobile): stop Android clipping the edges off a chip
chrisdeeming Sep 9, 2026
d1dcfca
fix(mobile): reserve the chip border a margin on both sides
chrisdeeming Sep 9, 2026
22a3e37
fix(mobile): stop truncation shaving the chip's right border
chrisdeeming Sep 9, 2026
e4aa08b
fix(mobile): stop Android cropping the chip's right border
chrisdeeming Sep 9, 2026
033e307
fix(context): give every chip kind the same visual weight
chrisdeeming Sep 9, 2026
4fab56f
fix(mobile): stop pull request suggestions crashing the composer
chrisdeeming Sep 9, 2026
ec33c9a
fix(mobile): colour pull request chips by their status
chrisdeeming Sep 9, 2026
b756ac7
fix(mobile): draw the pull request chip glyph web draws
chrisdeeming Sep 9, 2026
9795782
fix(mobile): preview a draft picture from the bytes it actually has
chrisdeeming Sep 9, 2026
6ef0b7a
fix(mobile): match web's chip borders and attachment icons
chrisdeeming Sep 9, 2026
6c92680
fix(mobile): send a promoted picture under one consistent identity
chrisdeeming Sep 9, 2026
34d9505
fix(context): keep every line of a multiline legacy comment
chrisdeeming Sep 9, 2026
67b6f32
fix(web): hold a send until a pasted attachment's bytes arrive
chrisdeeming Sep 9, 2026
6e23903
chore: stop tracking the local pnpm store
chrisdeeming Sep 9, 2026
32df308
style(mobile): satisfy ktlint declaration spacing
chrisdeeming Sep 9, 2026
60fdbaa
fix(mobile): open a draft's file in the same screen a thread does
chrisdeeming Sep 9, 2026
b23b56d
fix(context): end a legacy comment at a block, not at a blank line
chrisdeeming Sep 9, 2026
c3b6673
style(mobile): group the chip's content into one parameter
chrisdeeming Sep 9, 2026
c05724c
fix(web): keep a pasted attachment tied to the draft that started it
chrisdeeming Sep 9, 2026
8e59c27
fix(web): reconcile the expanded image dialog with upstream
chrisdeeming Sep 10, 2026
ba8d68c
fix(web): restore zoom, pan and snapshot details to the expanded dialog
chrisdeeming Sep 10, 2026
06fc132
fix(context): only reclassify a file attachment as a picture
chrisdeeming Sep 10, 2026
de8c04b
fix(mobile): sit an inline chip on the same line as the words beside it
chrisdeeming Sep 10, 2026
a9719a8
Revert "fix(mobile): sit an inline chip on the same line as the words…
chrisdeeming Sep 10, 2026
f049fdc
fix(mobile): keep an inline chip on its line without stretching the b…
chrisdeeming Sep 10, 2026
4f3ea7c
feat: add inline file previews and attachment chips across surfaces
chrisdeeming Sep 11, 2026
1b094b7
fix(context): use explicit relative imports in file preview tests
chrisdeeming Sep 11, 2026
a0d77ad
test(web): assert preview controls for ordinary file attachments
chrisdeeming Sep 11, 2026
ddd70d1
fix(web): remove unused browser preview helper
chrisdeeming Sep 11, 2026
edfdc67
fix(mobile): annotate generic catch in file opener
chrisdeeming Sep 11, 2026
fc10b1c
fix: address review findings across preview and context surfaces
chrisdeeming Sep 11, 2026
173971e
fix: make threadless draft previews work and harden review follow-ups
chrisdeeming Sep 11, 2026
d23bd0c
fix: address follow-up review comments on draft previews
chrisdeeming Sep 11, 2026
3200d96
fix: preserve copy boundaries and clipboard flavors
chrisdeeming Sep 11, 2026
005e42f
fix: apply review findings on media chips, send gating, and payload i…
chrisdeeming Sep 11, 2026
1ebe82d
fix(web): theme the terminal context popover
chrisdeeming Sep 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,6 @@ node_modules/
*.log
.env*
!.env.example

# pnpm content-addressable store; never belongs in the repo.
.pnpm-store/
Binary file added .pnpm-store/v11/index.db
Binary file not shown.
1 change: 1 addition & 0 deletions apps/desktop/src/electron/ElectronProtocol.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ describe("ElectronProtocol", () => {
"https:",
]);
assert.deepEqual(directives["media-src"], ["'self'", "t3code:", "blob:", "http:", "https:"]);
assert.deepEqual(directives["frame-src"], ["'self'", "blob:", "http:", "https:"]);
assert.deepEqual(directives["font-src"], ["'self'", "t3code:", "data:"]);
});
});
4 changes: 3 additions & 1 deletion apps/desktop/src/electron/ElectronProtocol.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,9 @@ export function makeDesktopContentSecurityPolicy(input: DesktopProtocolRegistrat
"style-src 'self' 'unsafe-inline'",
`font-src 'self' ${input.scheme}: data:`,
"worker-src 'self' blob:",
"frame-src 'self' https://challenges.cloudflare.com",
// Document viewers use local Blob URLs and signed assets from runtime environments.
// HTML viewers retain their own sandbox; the renderer's script policy stays unchanged.
"frame-src 'self' blob: http: https:",
"form-action 'self'",
].join("; ");
}
Expand Down
32 changes: 16 additions & 16 deletions apps/mobile/generated-uniwind-default-theme-variables.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,15 @@
"--color-md-blockquote-bg": "rgba(0, 0, 0, 0.02)",
"--color-md-code-bg": "rgba(0, 0, 0, 0.04)",
"--color-md-code-text": "#262626",
"--color-md-user-code-bg": "rgba(255, 255, 255, 0.22)",
"--color-md-user-code-text": "#ffffff",
"--color-md-user-fence-bg": "rgba(0, 0, 0, 0.16)",
"--color-md-user-fence-text": "#ffffff",
"--color-md-user-code-bg": "rgba(0, 0, 0, 0.04)",
"--color-md-user-code-text": "#262626",
"--color-md-user-fence-bg": "rgba(0, 0, 0, 0.06)",
"--color-md-user-fence-text": "#262626",
"--color-md-hr": "rgba(0, 0, 0, 0.08)",
"--color-user-bubble": "#007aff",
"--color-user-bubble-foreground": "#ffffff",
"--color-user-bubble-foreground-muted": "rgba(255, 255, 255, 0.78)",
"--color-user-bubble-skill-foreground": "#f0abfc",
"--color-user-bubble": "#ffffff",
"--color-user-bubble-foreground": "#262626",
"--color-user-bubble-foreground-muted": "rgba(38, 38, 38, 0.78)",
"--color-user-bubble-skill-foreground": "#2563eb",
"--color-backdrop": "rgba(0, 0, 0, 0.22)",
"--color-drawer": "rgba(255, 255, 255, 0.99)",
"--color-drawer-shadow": "rgba(0, 0, 0, 0.12)",
Expand Down Expand Up @@ -137,15 +137,15 @@
"--color-md-blockquote-bg": "rgba(255, 255, 255, 0.03)",
"--color-md-code-bg": "rgba(255, 255, 255, 0.06)",
"--color-md-code-text": "#e5e5e5",
"--color-md-user-code-bg": "rgba(255, 255, 255, 0.18)",
"--color-md-user-code-text": "#ffffff",
"--color-md-user-fence-bg": "rgba(0, 0, 0, 0.28)",
"--color-md-user-fence-text": "#ffffff",
"--color-md-user-code-bg": "rgba(255, 255, 255, 0.06)",
"--color-md-user-code-text": "#e5e5e5",
"--color-md-user-fence-bg": "rgba(255, 255, 255, 0.09)",
"--color-md-user-fence-text": "#e5e5e5",
"--color-md-hr": "rgba(255, 255, 255, 0.08)",
"--color-user-bubble": "#0a84ff",
"--color-user-bubble-foreground": "#ffffff",
"--color-user-bubble-foreground-muted": "rgba(255, 255, 255, 0.78)",
"--color-user-bubble-skill-foreground": "#f0abfc",
"--color-user-bubble": "#171717",
"--color-user-bubble-foreground": "#f5f5f5",
"--color-user-bubble-foreground-muted": "rgba(245, 245, 245, 0.78)",
"--color-user-bubble-skill-foreground": "#60a5fa",
"--color-backdrop": "rgba(0, 0, 0, 0.48)",
"--color-drawer": "rgba(14, 14, 14, 0.99)",
"--color-drawer-shadow": "rgba(0, 0, 0, 0.32)",
Expand Down
36 changes: 18 additions & 18 deletions apps/mobile/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -97,17 +97,17 @@
--color-md-blockquote-bg: rgba(0, 0, 0, 0.02);
--color-md-code-bg: rgba(0, 0, 0, 0.04);
--color-md-code-text: #262626;
--color-md-user-code-bg: rgba(255, 255, 255, 0.22);
--color-md-user-code-text: #ffffff;
--color-md-user-fence-bg: rgba(0, 0, 0, 0.16);
--color-md-user-fence-text: #ffffff;
--color-md-user-code-bg: rgba(0, 0, 0, 0.04);
--color-md-user-code-text: #262626;
--color-md-user-fence-bg: rgba(0, 0, 0, 0.06);
--color-md-user-fence-text: #262626;
--color-md-hr: rgba(0, 0, 0, 0.08);

/* iMessage-style user bubble */
--color-user-bubble: #007aff;
--color-user-bubble-foreground: #ffffff;
--color-user-bubble-foreground-muted: rgba(255, 255, 255, 0.78);
--color-user-bubble-skill-foreground: #f0abfc;
/* User bubble: a raised card on the thread canvas, matching web's message surface */
--color-user-bubble: #ffffff;
--color-user-bubble-foreground: #262626;
--color-user-bubble-foreground-muted: rgba(38, 38, 38, 0.78);
--color-user-bubble-skill-foreground: #2563eb;

/* Drawer / modal backdrop */
--color-backdrop: rgba(0, 0, 0, 0.22);
Expand Down Expand Up @@ -208,17 +208,17 @@
--color-md-blockquote-bg: rgba(255, 255, 255, 0.03);
--color-md-code-bg: rgba(255, 255, 255, 0.06);
--color-md-code-text: #e5e5e5;
--color-md-user-code-bg: rgba(255, 255, 255, 0.18);
--color-md-user-code-text: #ffffff;
--color-md-user-fence-bg: rgba(0, 0, 0, 0.28);
--color-md-user-fence-text: #ffffff;
--color-md-user-code-bg: rgba(255, 255, 255, 0.06);
--color-md-user-code-text: #e5e5e5;
--color-md-user-fence-bg: rgba(255, 255, 255, 0.09);
--color-md-user-fence-text: #e5e5e5;
--color-md-hr: rgba(255, 255, 255, 0.08);

/* iMessage-style user bubble */
--color-user-bubble: #0a84ff;
--color-user-bubble-foreground: #ffffff;
--color-user-bubble-foreground-muted: rgba(255, 255, 255, 0.78);
--color-user-bubble-skill-foreground: #f0abfc;
/* User bubble: a raised card on the thread canvas, matching web's message surface */
--color-user-bubble: #171717;
--color-user-bubble-foreground: #f5f5f5;
--color-user-bubble-foreground-muted: rgba(245, 245, 245, 0.78);
--color-user-bubble-skill-foreground: #60a5fa;

/* Drawer / modal backdrop */
--color-backdrop: rgba(0, 0, 0, 0.48);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ android {

dependencies {
implementation project(':expo-modules-core')
implementation project(':t3tools-mobile-markdown-text')
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,83 @@ package expo.modules.t3composereditor

import expo.modules.kotlin.modules.Module
import expo.modules.kotlin.modules.ModuleDefinition
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import org.json.JSONObject
import org.json.JSONArray

internal object T3ComposerClipboard {
fun write(context: Context, text: String, fragment: String) {
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val payload = try {
JSONObject(fragment)
} catch (_: Exception) {
null
}
val records = payload?.optJSONArray("records")
if (payload == null || records == null) {
clipboard.setPrimaryClip(ClipData.newPlainText("T3 Code", text))
return
}
val all = (0 until records.length()).map { records.getJSONObject(it) }
val selected = all.filter { text.contains("/${it.optString("contextId")})") }.toMutableList()
val screenshots = selected.map { it.optString("screenshotContextId") }.toSet()
selected.addAll(
all.filter {
screenshots.contains(it.optString("contextId")) &&
!selected.contains(it)
}
)
payload.put("records", JSONArray(selected))
val encoded = java.net.URLEncoder.encode(payload.toString(), "UTF-8").replace("+", "%20")
val escaped = text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
clipboard.setPrimaryClip(
if (selected.isEmpty()) {
ClipData.newPlainText(
"T3 Code",
text
)
} else {
ClipData.newHtmlText(
"T3 Code",
text,
"<pre data-t3-context-fragment=\"$encoded\">$escaped</pre>"
)
}
)
}

fun read(context: Context): Map<String, String> {
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = clipboard.primaryClip
val item = if (clip != null && clip.itemCount > 0) clip.getItemAt(0) else null
return mapOf(
"text" to (item?.text?.toString() ?: ""),
"html" to (item?.htmlText ?: ""),
"fragment" to ""
)
}
}

class T3ComposerEditorModule : Module() {
override fun definition() = ModuleDefinition {
Name("T3ComposerEditor")

AsyncFunction("writeContextClipboard") { text: String, fragment: String ->
T3ComposerClipboard.write(requireNotNull(appContext.reactContext), text, fragment)
}

View(T3ComposerEditorView::class) {
Prop("controlledDocumentJson") { view: T3ComposerEditorView, documentJson: String ->
view.setControlledDocumentJson(documentJson)
}
Prop("themeJson") { view: T3ComposerEditorView, themeJson: String ->
view.setThemeJson(themeJson)
}
Prop("clipboardFragment") { view: T3ComposerEditorView, fragment: String ->
view.setClipboardFragment(fragment)
}
Prop("placeholder") { view: T3ComposerEditorView, placeholder: String ->
view.setPlaceholder(placeholder)
}
Expand All @@ -36,6 +101,9 @@ class T3ComposerEditorModule : Module() {
Prop("editable") { view: T3ComposerEditorView, editable: Boolean ->
view.setEditable(editable)
}
Prop("readOnly") { view: T3ComposerEditorView, readOnly: Boolean ->
view.setReadOnly(readOnly)
}
Prop("scrollEnabled") { view: T3ComposerEditorView, scrollEnabled: Boolean ->
view.setScrollEnabled(scrollEnabled)
}
Expand All @@ -55,6 +123,8 @@ class T3ComposerEditorModule : Module() {
"onComposerFocus",
"onComposerBlur",
"onComposerPasteImages",
"onComposerContextPress",
"onComposerPasteContext",
"onComposerContentSizeChange",
)

Expand Down
Loading
Loading