Rental

RentalBookingForm

Date range picker with duration calculation, tiered pricing, and booking submission.

A booking form for rental products. Handles start/end date selection, automatic duration calculation based on the pricing unit (hourly/daily/weekly/monthly), tiered pricing resolution, and validation for min/max duration constraints.

Preview
dd
mm
yyyy
dd
mm
yyyy

Usage

<CRentalBookingForm
  :rental="product.rental"
  :product-id="product.id"
  @submit="handleBooking"
/>

With Availability

<CRentalBookingForm
  :rental="rental"
  :product-id="product.id"
  :availability="availableSlots"
  @submit="handleBooking"
/>

Loading State

<CRentalBookingForm :rental="rental" :product-id="product.id" loading />

Props

PropTypeDefaultDescription
rentalRentalProductMetarequiredRental metadata
productIdstringrequiredProduct ID
availabilityAvailabilitySlot[][]Available time slots
loadingbooleanfalseSubmitting
uiPartial<{...}>Per-instance theme overrides

Events

EventPayloadDescription
submitCreateRentalBookingInputBooking submitted { productId, startDate, endDate, quantity }

Features

  • Auto duration calculation: Computes duration from date range using the rental's pricing unit
  • Tiered pricing: Automatically resolves the best tier based on duration
  • Validation: Enforces min/max duration constraints with visual warnings
  • Smart input types: Shows datetime-local for hourly, date for daily/weekly/monthly
  • Live pricing summary: Shows duration, rate, deposit, and estimated total