make-app-sort

Implements Make App record-list sorting with drag-and-drop priority, Entity Preset persistence, and CanvasTable header linkage.

5|Updated Apr 1, 2026
One-click install
npx skills add https://github.com/qfeius/make-platform-skills --skill make-app-sort-qfeius
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: make-app-sort
Source: https://github.com/qfeius/make-platform-skills/tree/main/skills/make-app-sort
Command: npx skills add https://github.com/qfeius/make-platform-skills --skill make-app-sort-qfeius

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @qfei-design/make-app-sort, and includes references (resource) components.

What problem does it solve? Building record-list sorting in a Make App involves coordinating a toolbar panel, CanvasTable header actions, Entity Preset persistence, and Service-side validation, and doing any piece wrong causes stale queries, lost drafts, or overwritten filter/group settings. This Skill defines the complete consumer contract so sorting works as one integrated capability. ## Core Features & Use Cases - Integrated sorting flow: Connects the @qfei-design/make-app-sort panel, useRecordSortController, CanvasTable header asc/desc actions via openWithField, and records queries into one shared controller. - Preset persistence with save-before-apply: PATCHes sparse { sort } updates to the Entity Preset, sanitizes saved rules against runtime schema capabilities, and gates the first records request on schema and Preset hydration. - Strict Service contract: Validates sort payloads (max five entries, unique fieldKey, asc/desc only, capabilities.sortable === true) with a strict transport parser before forwarding ordered sorts to Make Data. - Use Case: A user drags three sort conditions into priority order in the panel, confirms, and the Skill ensures the Preset saves first, the applied sort updates, stale requests are discarded, and any make-app-actions selection is cleared only on successful apply. ## Quick Start Use the make-app-sort skill to add multi-field drag-and-drop sorting with Entity Preset persistence and CanvasTable header linkage to my Make App record list.

Frequently Asked Questions about make-app-sort

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add multi-field sorting to a Make App record list?

Install @qfei-design/make-app-sort and wire its RecordSortPanel with useRecordSortController into a host-owned Popover. Build candidates only from runtime schema fields with capabilities.sortable === true, persist via sparse Preset PATCH, and let a separate records lifecycle react to the applied sort.

How do I connect CanvasTable header sorting to a shared sort panel?

Call controller.openWithField(fieldKey, order) from the CanvasTable header asc/desc menu actions. This opens the same toolbar panel and edits the draft only; it never saves, closes, or triggers a records request before confirm.

What is the maximum number of sort conditions allowed?

The package contract fixes MAX_RECORD_SORT_COUNT at five entries. The canonical value is an ordered { fieldKey, order }[] array where index order defines priority, field keys are unique, and direction is exactly asc or desc.

Does saving a sort overwrite existing filter or group presets?

No. Preset writes are sparse: saving sort sends only { sort }, and clearing sends { sort: [] }. Filter, sort, and group dimensions update independently, and the Service must verify the upstream UpdateResource merge preserves sibling dimensions.

Why is my sort field rejected even though it exists in the schema?

A field is sortable only when its normalized runtime schema has a non-empty key and capabilities.sortable === true. Field-type allowlists, visible columns, or sample rows are not valid sources, and the Service rejects non-sortable fields with a 400 before calling Make.

Should I implement drag-and-drop sorting with dnd-kit in my host app?

No. dnd-kit is a package-internal dependency of @qfei-design/make-app-sort; the host must not install, import, or reimplement drag behavior. If a required behavior is missing, fix and release the shared package instead of adding a host fallback.