Skip to content

lmsqueezy/plain-ui-components

Repository files navigation

Plain UI Components

Build Status Total Downloads Latest Stable Version License

A Laravel-based library to easily build Plain UI component cards.

Requirements

  • PHP 8.1 or higher
  • Laravel 8.83 or higher

Installation

Install the package with composer:

composer require lemonsqueezy/plain-ui-components

Usage

/**
 * An Plain Customer Card endpoint
 *
 * @link https://docs.plain.com/adding-context/customer-cards
 */
public function customerCards(Request $request)
{
    abort_unless($email = $request->input('customer.email'), 400, 'No email provided.');

    $user = User::where('email', $email)->firstOrFail();

    return Cards::make()
        // Adding a card directly is easy, but the data is not guaranteed to be used by Plain.
        ->add(Card::make('platform-details')->add(Text::make('Platform Version: '.config('app.version')))

        // As an alternative, you can therefore use a binding, which lazily resolves
        // only when the request asks for that card, making it way more efficient.
        ->bind('user-details', fn (Card $card) => $this->buildUserDetailsCard($card, $user))

        // Finally, we'll render the cards payload using the JSON Request made by Plain.        
        ->toArray($request);
}

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

This way, we can safely discuss and resolve the issue (within a reasonable timeframe), without exposing users to the unnecessary additional risk. Once the issue is fixed and a new version is released, we'll make sure to credit you for your contribution (unless you wish to remain anonymous).

License

The MIT License (MIT). Please see License File for more information.