{"id":14957179,"url":"https://github.com/scommons/scommons-react","last_synced_at":"2025-05-02T08:30:38.617Z","repository":{"id":35664484,"uuid":"165378368","full_name":"scommons/scommons-react","owner":"scommons","description":"Scala.js facades for core React.js APIs, components and hooks","archived":false,"fork":false,"pushed_at":"2024-03-09T14:25:37.000Z","size":685,"stargazers_count":5,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T00:07:44.287Z","etag":null,"topics":["facades","front-end","frontend","react","react-hooks","react-js","react-test-renderer","reactjs","redux","scala","scala-facade","scala-js","scalajs","scalajs-reactjs"],"latest_commit_sha":null,"homepage":"https://scommons.github.io/scommons-react/","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scommons.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-12T11:09:19.000Z","updated_at":"2024-03-09T13:02:16.000Z","dependencies_parsed_at":"2024-11-12T12:48:06.322Z","dependency_job_id":"fe98690c-9ad1-461b-8cd4-99243051a17b","html_url":"https://github.com/scommons/scommons-react","commit_stats":{"total_commits":86,"total_committers":1,"mean_commits":86.0,"dds":0.0,"last_synced_commit":"59a84fe265c09d4c8d41eba5da41e702464f2d3b"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scommons%2Fscommons-react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scommons%2Fscommons-react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scommons%2Fscommons-react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scommons%2Fscommons-react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scommons","download_url":"https://codeload.github.com/scommons/scommons-react/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252008695,"owners_count":21679624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["facades","front-end","frontend","react","react-hooks","react-js","react-test-renderer","reactjs","redux","scala","scala-facade","scala-js","scalajs","scalajs-reactjs"],"created_at":"2024-09-24T13:14:17.896Z","updated_at":"2025-05-02T08:30:37.685Z","avatar_url":"https://github.com/scommons.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n[![CI](https://github.com/scommons/scommons-react/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/scommons/scommons-react/actions/workflows/ci.yml?query=workflow%3Aci+branch%3Amaster)\n[![Coverage Status](https://coveralls.io/repos/github/scommons/scommons-react/badge.svg?branch=master)](https://coveralls.io/github/scommons/scommons-react?branch=master)\n[![scala-index](https://index.scala-lang.org/scommons/scommons-react/scommons-react-core/latest.svg)](https://index.scala-lang.org/scommons/scommons-react/scommons-react-core)\n[![Scala.js](https://www.scala-js.org/assets/badges/scalajs-1.8.0.svg)](https://www.scala-js.org)\n\n## Scala Commons React\n[Scala.js](https://www.scala-js.org) facades for common [React.js](https://reactjs.org) utilities and components.\n\nIt uses excellent [scalajs-reactjs](https://github.com/shogowada/scalajs-reactjs) binding/facade library.\n\n\n### How to add it to your project\n\n```scala\nval scommonsReactVer = \"1.0.0-SNAPSHOT\"\n\nlibraryDependencies ++= Seq(\n  \"org.scommons.react\" %%% \"scommons-react-core\" % scommonsReactVer,\n  \"org.scommons.react\" %%% \"scommons-react-dom\" % scommonsReactVer,\n  \"org.scommons.react\" %%% \"scommons-react-redux\" % scommonsReactVer,\n  \n  \"org.scommons.react\" %%% \"scommons-react-test\" % scommonsReactVer % \"test\",\n  \"org.scommons.react\" %%% \"scommons-react-test-dom\" % scommonsReactVer % \"test\"\n)\n```\n\nLatest `SNAPSHOT` version is published to [Sonatype Repo](https://oss.sonatype.org/content/repositories/snapshots/org/scommons/), just make sure you added\nthe proper dependency resolver to your `build.sbt` settings:\n```scala\nresolvers += \"Sonatype Snapshots\" at \"https://oss.sonatype.org/content/repositories/snapshots/\"\n```\n\n### How to use it\n\n* Demo Application\n  * [live demo](https://scommons.github.io/scommons-react/showcase/) =\u003e [How to Build and Run](showcase/README.md)\n  * [AppMain](showcase/src/main/scala/scommons/react/showcase/app/ShowcaseReactApp.scala)\n  * [AppState](showcase/src/main/scala/scommons/react/showcase/app/ShowcaseState.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/app/ShowcaseStateReducerSpec.scala)\n  * [CounterActions](showcase/src/main/scala/scommons/react/showcase/app/counter/CounterActions.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/app/counter/CounterActionsSpec.scala)\n  * [CounterController](showcase/src/main/scala/scommons/react/showcase/app/counter/CounterController.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/app/counter/CounterControllerSpec.scala)\n  * [CounterPanel](showcase/src/main/scala/scommons/react/showcase/app/counter/CounterPanel.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/app/counter/CounterPanelSpec.scala)\n  * [CounterState](showcase/src/main/scala/scommons/react/showcase/app/counter/CounterState.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/app/counter/CounterStateReducerSpec.scala)\n\n* Components:\n  * [ClassComponent](showcase/src/main/scala/scommons/react/showcase/ClassComponentDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/ClassComponentDemoSpec.scala)\n  * [ErrorBoundary](showcase/src/main/scala/scommons/react/showcase/ErrorBoundaryDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/ErrorBoundaryDemoSpec.scala)\n  * [FunctionComponent](showcase/src/main/scala/scommons/react/showcase/FunctionComponentDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/FunctionComponentDemoSpec.scala)\n  * [React.memo](showcase/src/main/scala/scommons/react/showcase/ReactMemoDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/ReactMemoDemoSpec.scala)\n  * [React.Fragment](showcase/src/main/scala/scommons/react/showcase/ReactFragmentDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/ReactFragmentDemoSpec.scala)\n\n* React API\n  * [React.createRef()](showcase/src/main/scala/scommons/react/showcase/ReactRefDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/ReactRefDemoSpec.scala)\n  * [ReactDOM.createPortal()](showcase/src/main/scala/scommons/react/showcase/dom/ReactPortalDemo.scala)\n\n* React Hooks:\n  * [useState](showcase/src/main/scala/scommons/react/showcase/hooks/UseStateDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/hooks/UseStateDemoSpec.scala)\n  * [useReducer](showcase/src/main/scala/scommons/react/showcase/hooks/UseReducerDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/hooks/UseReducerDemoSpec.scala)\n  * [useMemo/useCallback](showcase/src/main/scala/scommons/react/showcase/hooks/UseMemoDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/hooks/UseMemoDemoSpec.scala)\n  * [useContext](showcase/src/main/scala/scommons/react/showcase/hooks/UseContextDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/hooks/UseContextDemoSpec.scala)\n  * [useRef](showcase/src/main/scala/scommons/react/showcase/hooks/UseRefDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/hooks/UseRefDemoSpec.scala)\n  * [useEffect](showcase/src/main/scala/scommons/react/showcase/hooks/UseEffectDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/hooks/UseEffectDemoSpec.scala)\n  * [useLayoutEffect](showcase/src/main/scala/scommons/react/showcase/hooks/UseLayoutEffectDemo.scala) =\u003e [tests](showcase/src/test/scala/scommons/react/showcase/hooks/UseLayoutEffectDemoSpec.scala)\n\n### How to Build\n\nTo build and run all the tests use the following command:\n```bash\nsbt test\n```\n\n## Documentation\n\nYou can find more documentation [here](https://scommons.github.io/scommons-react)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscommons%2Fscommons-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscommons%2Fscommons-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscommons%2Fscommons-react/lists"}