New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

react-draggrid-library

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-draggrid-library

Uma biblioteca de componentes React para criar dashboards com grids arrastáveis e redimensionáveis.

latest
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

React DashGrid Logo

Uma biblioteca de componentes React leve e poderosa para criar dashboards com grid dinâmico e arrastável.

NPM Version NPM License GitHub language count Repository size GitHub last commit Stargazers

Por que React DashGrid?   |    Instalação   |    Como Usar   |    API   |    Demonstração   |    Contribuições   |    Licença

🚀 Por que React DashGrid?

  • 📦 Layout Inteligente: Organiza os cards automaticamente para preencher os espaços da melhor forma, sem deixar "buracos".
  • ↔️ Leve e Sem Dependências: Construído com React puro, sem bibliotecas externas pesadas.
  • 👁️ Totalmente Customizável: Você controla 100% o conteúdo e a aparência dos seus cards.
  • Responsivo: O grid se adapta fluidamente ao tamanho do container.

📦 Instalação

npm install react-dashgrid
# ou
yarn add react-dashgrid

🛠️ Como Usar

A react-dashgrid exporta um componente principal: <Droppable />. Você deve gerenciar o estado dos seus cards e passar para o componente, junto com uma função que renderiza seus cards customizados.

import React, { useState } from 'react';
import { Droppable } from 'react-dashgrid';

// IMPORTANTE: Importe os estilos base da biblioteca para o drag-and-drop funcionar.
import 'react-dashgrid/dist/style.css';

// 1. Defina o seu componente de Card customizado
const MyCard = ({ card, onRemove }) => (
  <div style={{
    width: '100%',
    height: '100%',
    backgroundColor: card.color,
    borderRadius: '8px',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    color: 'white',
    fontWeight: 'bold',
    position: 'relative',
    boxShadow: '0 4px 6px rgba(0,0,0,0.1)',
  }}>
    <h3>{card.title}</h3>
    <button
      onClick={() => onRemove(card.id)}
      style={{ position: 'absolute', top: '5px', right: '5px', background: 'none', border: 'none', color: 'white', cursor: 'pointer' }}
    >
      ×
    </button>
  </div>
);

function App() {
  // 2. Gerencie o estado dos seus cards
  const [cards, setCards] = useState([
    { id: '1', title: 'Card 1', size: 'sm', color: '#ef4444' },
    { id: '2', title: 'Card 2', size: 'md', color: '#3b82f6' },
    { id: '3', title: 'Card 3', size: 'lg', color: '#22c55e' },
  ]);

  const removeCard = (id) => {
    setCards(cards.filter(card => card.id !== id));
  };

  return (
    <div style={{ width: '100%', height: '500px', backgroundColor: '#334155', padding: '16px', borderRadius: '8px' }}>
      <Droppable
        cards={cards}
        onCardsChange={setCards}
        renderCard={(card) => <MyCard card={card} onRemove={removeCard} />}
      />
    </div>
  );
}

📚 API

Props do <Droppable />

PropTipoObrigatórioDescrição
cardsCardData[]✅ SimLista de objetos representando os cards
onCardsChange(cards: CardData[]) => void✅ SimFunção chamada quando a ordem ou tamanho dos cards muda
renderCard(card: CardData) => React.ReactNode✅ SimFunção que renderiza cada card
baseUnitWidthnumber❌ NãoLargura base em px (padrão: 160)
baseUnitHeightnumber❌ NãoAltura base em px (padrão: 100)
gapnumber❌ NãoEspaçamento entre os cards (padrão: 16)
sizesRecord<string, {w: number, h: number}>❌ NãoObjeto com definições de tamanhos customizados

Estrutura do Objeto CardData

Cada objeto no array cards deve conter, no mínimo, as seguintes propriedades:

ChaveTipoObrigatórioDescrição
idstring ou number✅ SimIdentificador único e estável para o card.
sizestring✅ SimChave de um tamanho definido na prop sizes.

🖼️ Demonstração Online

👉 Veja a biblioteca em ação aqui! Vercel

🏗️ Contribuições

Contribuições são bem-vindas! Se encontrou um bug ou tem uma sugestão, por favor, abra uma issue.

📄 Licença

Este projeto está sob a licença MIT.

Feito por Matheus Lemes

Conecte-se comigo no LinkedIn Siga-me no GitHub

Keywords

react

FAQs

Package last updated on 02 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts