make-app-filter

Integrates package-backed advanced filtering with CanvasTable header linkage and CEL expression payloads for Make record lists.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Building record-list filtering in Make Apps often leads to fragmented implementations: a hand-written advanced filter panel, a separate table header filter, and ad-hoc query payloads that drift from the backend contract. This Skill enforces one integrated filtering feature built on the @qfei-design/make-app-filter package, so toolbar filters, CanvasTable header "按该字段筛选" actions, Entity Preset persistence, and Service filter.expression payloads all stay consistent. ## Core Features & Use Cases - Package-backed advanced filter: Wires @qfei-design/make-app-filter's Filter IR, operator matrix, validation, CEL compiler, and AdvancedFilterPanel into the host UI with a mandatory fixed header/body/footer panel layout. - CanvasTable header linkage: Connects header "按该字段筛选" menu actions to the same package controller via openWithField, with correct suffix icon and menu-closing behavior. - Preset persistence and Service contract: Saves only the filter dimension to the Entity Preset with permission-aware request generations, and submits compileListFilter output unchanged as filter.expression. - Use Case: When a user asks to add advanced filtering to a Make object list page, this Skill delivers the toolbar filter, header field filtering, Preset save/load/echo, and backend expression payload as one complete feature. ## Quick Start Ask the AI to add advanced filtering with table header field filtering to a Make App record-list page using the make-app-filter package.

Frequently Asked Questions about make-app-filter

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

FAQPage Schema
How do I add advanced filtering to a Make App record list?

Install @qfei-design/make-app-filter@^1.0.0, import its styles.css once, and render AdvancedFilterPanel inside a host Popover using useAdvancedFilterController. Submit results through compileListFilter as a filter.expression payload to Service.

How do I connect CanvasTable header filtering to an advanced filter panel?

Add a header suffix menu via CanvasTable suffixRender and call the package controller's openWithField(fieldKey) when the user clicks 按该字段筛选. It appends a draft condition and opens the same toolbar panel without submitting or reloading records.

Does make-app-filter support Lookup, DateRange, and File fields?

Yes, the 1.0.0 package baseline supports DateRange, File, and resolved Lookup fields. Lookup requires the host to resolve relationKey and target field metadata from the runtime schema; unresolved Lookups stay hidden from selectors.

Can I write my own CEL expression or filter compiler in the host app?

No. compileListFilter is the only host-facing compiler, and its output must be sent to Service unchanged. Hand-written CEL, DNF conversion, operator matrices, or local filter panels are explicitly prohibited.

Why must the advanced filter panel use a fixed header and footer layout?

The fixed three-region layout keeps 清空所有, 添加条件, and 确认 visible while condition rows scroll. A full-panel scroll implementation where actions scroll away is a delivery blocker that must be fixed before reporting completion.

How are saved filters persisted and restored in Make Apps?

Filters persist as a sparse Entity Preset PATCH containing only the filter dimension, loaded before the first records query under a permission-aware { enabled, entityKey, generation } context. Unsupported saved CEL stays active on the backend with a visible compatibility warning.