Skip to content

Hilla/React demo application using Hilla v2.2+ features like useForm to bind forms data and dataprovider with Grid to perform backend sorting and filtering.

License

Apache-2.0, Unlicense licenses found

Licenses found

Apache-2.0
LICENSE
Unlicense
LICENSE.md
Notifications You must be signed in to change notification settings

TatuLund/hilla-v2-demo

Demoing advanced tips and tricks with Hilla/React

This project can be used as a starting point to create your own Hilla application with Spring Boot. It contains all the necessary configuration and some placeholder files to get you started. The demo app is a bit fabricated and is more purposed to demonstrate certain advanced topics in Hilla/React.

Topics

  • Using data provider in Grid with backend sorting and filtering for large data source
    • Wrap the needed logic in custom hook
  • Using Hilla's useForm to bind fields to object and perform client side validation
  • Perform expensive backend validation and catching the backend exception message for the UI
  • Broadcast notification of new saved Todos for all users
  • Create custom Badge component
  • Create custom field LocalizedDatePicker that works with useForm
  • Style Grid to have hover effect on data rows
  • Inject tooltip to header with sorter

Running the application

The project is a standard Maven project. To run it from the command line, type mvn spring-boot:run then open http://localhost:8080 in your browser.

You can also import the project to your IDE of choice as you would with any Maven project.

Deploying to Production

To create a production build, call mvnw clean package -Pproduction (Windows), or ./mvnw clean package -Pproduction (Mac & Linux). This will build a JAR file with all the dependencies and front-end resources, ready to be deployed. The file can be found in the target folder after the build completes.

Once the JAR file is built, you can run it using java -jar target/myapp-1.0-SNAPSHOT.jar (NOTE, replace myapp-1.0-SNAPSHOT.jar with the name of your jar).

Project structure

DirectoryDescription
frontend/Client-side source directory
    index.htmlHTML template
    index.tsFrontend entrypoint, bootstraps a React application
    routes.tsxReact Router routes definition
    MainLayout.tsxMain layout component, contains the navigation menu, uses App Layout
    views/UI view components
    themes/Custom CSS styles
src/main/java/<groupId>/Server-side source directory, contains the server-side Java views
    Application.javaServer entry-point

Useful links

About

Hilla/React demo application using Hilla v2.2+ features like useForm to bind forms data and dataprovider with Grid to perform backend sorting and filtering.

Topics

Resources

License

Apache-2.0, Unlicense licenses found

Licenses found

Apache-2.0
LICENSE
Unlicense
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published