Shubham Singh
12/24/2024, 4:17 PMhtml {
user-drag: none;
}
David Herman
12/24/2024, 4:32 PM@InitSilk
block and then ctx.stylesheet.registerStyle("html")
David Herman
12/24/2024, 4:33 PMShubham Singh
12/24/2024, 6:26 PMShubham Singh
12/24/2024, 6:26 PMShubham Singh
12/24/2024, 6:29 PMStyle block declarations cannot contain Modifiers that specify attributes. Only style modifiers are allowed here.
Details:
CSS rule: "html"
Attribute(s): "draggable"
Please search your `@InitSilk` code for a line like `ctx.stylesheet.registerStyle("html")` and remove the offending attribute(s).
David Herman
12/24/2024, 6:55 PMextraModifier
for attributesDavid Herman
12/24/2024, 6:56 PMDavid Herman
12/24/2024, 6:59 PMShubham Singh
12/24/2024, 7:01 PMDavid Herman
12/24/2024, 7:41 PMval rootHtmlElement = window.document.documentElement as HTMLElement
rootHtmlElement.draggable = false
I wouldn't necessarily do that inside an InitSilk
block at this point -- technically, that's not a silk thing you're doing at this point -- but maybe inside your @App
block?
@App
@Composable
fun AppEntry(content: @Composable () -> Unit) {
LaunchedEffect(Unit) {
val rootHtmlElement = ...
rootHtmlElement.draggable = false
}
... other stuff ...
}
David Herman
12/24/2024, 7:42 PMuser-drag
David Herman
12/24/2024, 7:44 PMDavid Herman
12/24/2024, 7:45 PMDavid Herman
12/24/2024, 7:51 PM@App
@Composable
fun AppEntry(content: @Composable () -> Unit) {
LaunchedEffect(Unit) {
// Disable drag/drop globally
document.addEventListener("dragstart", { event -> event.preventDefault() })
document.addEventListener("drop", { event -> event.preventDefault() })
document.addEventListener("dragover", { event -> event.preventDefault() })
}
... other stuff ...
}
David Herman
12/24/2024, 7:51 PMDavid Herman
12/24/2024, 7:55 PM@InitSilk
fun init(ctx: InitSilkContext) {
ctx.stylesheet.registerStyleBase("html") {
Modifier.userSelect(UserSelect.None)
}
}
@App
@Composable
fun AppEntry(content: @Composable () -> Unit) {
LaunchedEffect(Unit) {
// Disable drag/drop globally
document.addEventListener("dragstart", { event -> event.preventDefault() })
document.addEventListener("drop", { event -> event.preventDefault() })
document.addEventListener("dragover", { event -> event.preventDefault() })
}
... other stuff ...
}
Shubham Singh
12/25/2024, 3:23 AMShubham Singh
12/25/2024, 3:45 AMYou might be asking about disabling text selection though?Text selection is okay, I just don't want users to be able to drag-and-drop UI components like buttons, cards, etc.
Shubham Singh
12/25/2024, 3:46 AMShubham Singh
12/25/2024, 3:49 AMMaybe try this and report back?This worked as expected ✅ Thank you 🙌
David Herman
12/25/2024, 4:14 AM