$ show dsternlicht/RESTool
RESTool is a configurable React-based UI tool for managing RESTful APIs. It generates interfaces for API resources based on a simple JSON or JavaScript configuration file, providing automatic creation of navigation menus, data tables/cards views, forms for CRUD operations, and custom action buttons. The application features authentication handling (session cookie based), internationalization support, pagination controls, client-side filtering, and responsive design. Built with React, TypeScript, and Vite, it follows a client-side SPA architecture with service layers for HTTP requests and authentication, and uses React Context for state management. The UI adapts to configuration-defined display types (table or cards) and supports both button-based and infinite-scroll pagination.
The LLM identified 6 files worth highlighting for reuse:
A reusable button component with color variants (gray, blue, green, red) that implements proper disabled states, focus states, and hover effects. Demonstrates solid encapsulation with zero internal dependencies beyond its own stylesheet, making it easily extractable to any React project.
A pure CSS-based loading spinner component that creates a bouncing balls animation. Contains no external dependencies beyond its stylesheet, demonstrating effective use of CSS keyframe animations for lightweight, dependency-free loading indicators that work in any web context.
A CSS-based infinite loader animation featuring two rotating balls. Like the Loader component, it has zero external dependencies beyond its stylesheet, showcasing advanced CSS animation techniques for creating engaging visual feedback during asynchronous operations.
A modal popup implementation using React Portals that properly manages focus trapping, escape key handling, and lifecycle cleanup. While it has minor internal dependencies for typing and context, these could be easily replaced with generic props, making it highly reusable with minimal modification.
A notification banner component that uses an event emitter pattern for decoupled communication and properly cleans up subscriptions via useEffect. Demonstrates strong separation of concerns and could be adapted to any notification system with minor changes to decouple from the specific notification service.
An extremely simple component that injects CSS variables based on a configuration object. With only one internal import for typing (which could be made generic), it exemplifies the power of CSS variables for dynamic theming and could be used in any web application with virtually no modification.