Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Community Manager Moderator Rota Profile Block for React

A community manager profile as a moderator rota: a table of next week's three shifts across seven days with moderator initials, the manager's own shifts in solid weight, uncovered shifts with a Take shift button, and a derived count of shifts covered.

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

Show who keeps a community moderated and where it is thin, with this community manager profile for React with Base UI. A compact header holds the title and a Reset rota button, and the hairline frame under it opens on the person: initials, name, role, place and how many shifts are hers. A band names the week and states the count, "19 of 21 shifts covered", worked out from the rota. Below it a real table runs Monday to Sunday across and morning, afternoon and evening down, each cell holding the initials of whoever moderates it, with the manager's own in solid weight and everyone else's quieter. A shift nobody covers says Uncovered and has a Take shift Button; taking it puts the manager's initials in the cell and moves the count up by one. The table scrolls sideways inside a named region on a phone, with the shift names pinned. The foot, ruled by Guides, holds a polite status line and a key for the solid chip. It's built from a native table, Button, Badge, Avatar and Guides, with a CSS entrance only. For a community platform, a support rota or any profile about a person who keeps a schedule covered.

FAQ

How do I fill in my own rota?

Edit the constants at the top. MODERATORS lists the people by initials, SHIFTS the three shifts with their hours, DAYS the seven dates, and ROTA holds one string per shift with seven entries, each the initials on that shift split by spaces, or an empty string for nobody. MANAGER is the initials that get the solid weight. The covered count and the manager's shift count are worked out from ROTA, never typed.

What does Take shift do?

It changes state in the page and nothing else: the cell shows the manager's initials with the line Taken in this demo, the header count goes up, and the status line says which shift was taken. Reset rota puts the table back as it started. To make it real, call your scheduling API from the button's handler and only update the cell when it answers.

Is it a real table?

Yes: a native table with a caption, column headings for the days, a row heading for each shift and a cell per shift and day, so a screen reader can read a cell with its day and shift. The initials are decorative; the names of the moderators are read out in text and an uncovered cell is read as Uncovered, with a button named for its shift and day.

Where does focus go after I take a shift?

The button is replaced by the manager's initials, so focus moves to that cell, which is a focus target with no tab stop of its own. The status line also announces the change, so nothing is lost for a keyboard or screen reader user.

How does it look on a phone?

The table keeps seven day columns and scrolls sideways inside a region that can be focused and scrolled with the arrow keys; the first column, the shift names, stays pinned at the start so you always know which row you are in. The header's button drops under the sentence.

Does it work in a right-to-left layout?

Yes. The pinned column sits at the start of the row, so it moves to the right, the hours stay in reading order, and dates and counts are isolated so the digits do not flip.