Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Webhook Notify File Upload Block for Vue

A matrix of four file events by three destinations with a checkbox in every cell, All/None buttons for each row and column, a count per destination, and typed test results (200 or 500) appended to a held list.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Decide which file events reach which destination, in one grid, with this file upload panel for Vue with Ark UI. It is the routing screen of Pigeonpost, a notification router. A native table has four events down the side (upload.completed, upload.failed, scan.flagged and file.deleted) and three destinations across the top (a Billing endpoint, an Ops endpoint and an Email digest). Each cell is a Checkbox named "upload.completed to Billing endpoint"; every row and column has an All or None Button, and each destination counts how many events it takes. The first column is sticky and the matrix scrolls sideways on a phone. Send test to selected adds one typed result for every ticked pair to a held list, with the status that destination answers: 200 from Billing and the Email digest, 500 from Ops, a sample outage. The panel is ruled by Guides. It is built from Checkbox, Badge, Button, Shine Button and Guides, with a CSS entrance only. For notification routers, alerting settings and any app that fans events out.

FAQ

How do the All and None buttons work?

A row button sets every destination for that event; a column button sets every event for that destination. The word flips to None once the whole row or column is on. Each button is named for what it does, such as "All destinations for upload.failed".

What are the counts under the destination names?

How many of the four events that destination takes, worked out from the ticks. The header above the matrix also counts the routes on, out of twelve.

Where do the 200 and 500 come from?

They are typed for each destination: Billing and the Email digest answer 200, the Ops endpoint answers 500, as a sample outage. Each result row shows the event, the destination, a fixed time and the status in words and a glyph.

Is there retry or delivery history?

No. This block only routes. Retries, secrets and delivery logs belong to an endpoint list, which Pigeonpost keeps in its settings.

How does the matrix behave on a phone?

It scrolls sideways inside a keyboard-focusable region and the event column stays in view, so you can always tell which row a box belongs to.

What stays local, and how do I wire it?

The ticks and the results live in this page and nothing is sent. To wire it, save the ticked pairs as routing rules on your server, and make the test button post a sample event to each chosen destination and show the status it really returns.