Everything about Slinky -- issues, ideas for features, where it's being used, and more
package connect.ui.components.auth
import slinky.core._
import slinky.core.annotations.react
import slinky.web.html._
import org.scalajs.dom
import slinky.core.facade.{Fragment, ReactElement}
import slinky.web.ReactDOM
import slinky.core.facade.React
import slinky.core.facade.Hooks._
import typings.reactRouterDom.{ components => router}
import scala.scalajs.js
import connect.ui.domain.authentication.Auth
import org.scalablytyped.std.global.console
@react
object AuthContextProvider {
val authContext = React.createContext[Auth](Auth(false, "", "", 0, () => ()))
case class Props(test: String, children: ReactElement*)
val component = FunctionalComponent[Props] { props =>
val (isAuthenticated, setIsAuthenticated) = useState(false)
def loginHandler(): Unit = {
console.log("loginHandler called")
setIsAuthenticated(true)
router.Redirect(to = "/")
}
authContext.Provider(value = Auth(isAuthenticated, "", "", 0, loginHandler _))(
props.children
)
}
}
useContext(AuthContextProvider.authContext)
in a different component
AuthContextProvider.authContext.Consumer( context => ...)
it works
@react
working, since the remaining macros are mostly just for typeclass derivation.
Just wondering has anyone played with Laminar at all?
The syntax feels very similar to slinky (at least the linked example!). Curious to hear people's thoughts and opinions on it