npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-fenestra

v1.1.1

Published

Componente Responsivo em React para Interface de Usuário com Desktop, Ícones, Janelas e Barra de Tarefas.

Downloads

21

Readme

Introdução

react-fenestra

Componente Responsivo em React para Interface de Usuário com Desktop, Ícones, Janelas e Barra de Tarefas.

Live Preview

Clique para acessar o preview

Instalação

Via NPM:

npm install react-fenestra

Utilização

//Importações padrão do React
import React from 'react';
import ReactDOM from 'react-dom/client';

// Importação dos componentes do React-Fenestra
import { Desktop, Icon } from 'react-fenestra';

//Aplicação da folha de estilo do Bootstrap e do Fenestra (necessário).
import "bootstrap/dist/css/bootstrap.css";
import "react-fenestra/css/fenestra.css";

//Importação de bibliotecas do FontAwesome (opcional).
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faWindowRestore } from '@fortawesome/free-solid-svg-icons';

//Renderização do nó raiz da aplicação
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>    
    <Desktop
      icons={[
        ({ fenestra }) =>
          <Icon title="Abrir Janela"
            icon={<FontAwesomeIcon icon={faWindowRestore} size="3x" />}
            onClick={() => fenestra.open({
              title: "Nova Janela",
              content: ({ fenestra }) =>
                <h1>Olá Mundo!</h1>
            })}
          />
      ]}
    />
  </React.StrictMode>
);

Resultado

API

<Desktop />

Renderiza um novo desktop com capacidade para gerenciar janelas. Possui uma única Propriedade icons para que seja repassada uma lista de itens clicáveis da Área de Trabalho

|Propriedade | Tipo |Valor Padrão|Detalhes| |-----|-------|------------|--------| |icons| Array |(vazio)| Lista de definições de componentes que serão renderizados no desktop. Em cada um dos ícones será injetada a propriedade fenestra que possuirá toda a API necessária para gerenciar a interface. Recomenda-se que seja acionado o método fenestra.open(window, callback) em um evento onClick do componente.|

Observe que o parâmetro icons recebe uma lista de Definições de componentes que receberão a propriedade fenestra com toda a interface de gerenciamento das janelas.

Exemplo de Definições

import React from 'react';
class MeuIcone extends React.Component {
    render(){
        return <button onClick={() => this.props.fenestra.open({title: "Nova Janela"})}>Abrir Janela</button>
    }
}
export default MeuIcone;

ou ainda:

const MeuIcone = ({fenestra}) => 
<button onClick={() => fenestra.open({title: "Nova Janela"})}>Abrir Janela</button>;

export default MeuIcone;

<Icon />

Componente utilitário para exibição dos ícones do Desktop

|Propriedade | Tipo |Valor Padrão|Detalhes| |-----|-------|------------|--------| |icon| Componente |(vazio)| Conteúdo a ser renderizado no local do ícone. |title| Componente | (vazio) | Conteúdo a ser renderizado no local do título. |onClick | Função | () => undefined | Função chamada ao se clicar sobre o ícone.

A propriedade fenestra

Todos os componentes renderizados no conteúdo das janelas recebem a propriedade fenestra, a qual possui os seguintes métodos e atributos:

|Atributo|Tipo|Valor Padrão|Detalhes |--------|----|------------|-----| |window | Objeto | (Segue abaixo) | Detalhes da janela em que foi aberto o componente. |window.title | string | (vazio) | Título da janela |window.index | inteiro | (incremental) | Indice único da janela. |window.content | Definição React | null | Definição do Conteúdo da janela. Tal definição receberá a propriedade fenestra ao ser instanciada. |window.maximized| bool | false | Indica se a janela está maximizada. |window.minimized | bool | false | Indica se a janela está minimizada. |window.active | bool | true | Indica se a janela está ativa (foreground). |window.top | inteiro | 0 | Indica a distância da janela à borda superior do desktop. |window.left | inteiro | 0 | Indica a distância da janela à borda esquerda do desktop. |window.width | inteiro | 600 | Indica a Largura atual da janela. |window.height | inteiro | 400 | Indica a Altura atual da janela. |window.moving | bool | false | Indica se a janela está em movimento. |window.resizing | bool | false | Indica se a janela está sendo redimensionada. |window.resizeable | bool | true | Indica se a janela é redimensionável. |window.moveable | bool | true | Indica se a janela é movível. |windows|window[]|[] |Lista de todas as janelas do desktop. |open| Função | (window, callback = (window) => undefined) => undefined| Abre uma nova janela no desktop com os parâmetros definidos por window. Após esta ação, o callback é chamado. |close| Função | (w = window, callback = () => undefined) => undefined|Fecha a janela atual ou a identificada. Após esta ação, o callback é chamado. |minimize| Função | (w = window) => undefined| Minimiza a janela. |toggleMaximized| Função | (w = window) => undefined| Maximiza/Restaura a Janela. |activate| Função | (w = window) => undefined| Ativa a janela. |setTitle| Função | (title, w = window) => undefined| Altera o Título da Janela. |setContent| Função | (content, w = window) => undefined| Altera o conteúdo da janela. |setPosition| Função | (top, left, w = window) => undefined|Altera a posição da janela. |setSize| Função | (width, height, w = window) => undefined| Altera o tamanho da janela. |startMove| Função | (posX, posY, w = window) => undefined| Inicia a movimentação da janela a partir da posição atual. |startResize| Função | (posX, posY, dir, w = window) => undefined| Inicia o redimensionamento da janela a partir da posição atual.

Notas da Versão

1.1.0

  • Aprimoramento do redimensionamento das janelas

1.0.9

  • Melhorias na responsividade da interface

Licença

MIT

Autor

Luiz Alfredo Galiza [email protected]

Engenheiro da Computação formado pela Universidade Federal do Pará, trabalha há mais de 20 anos na área de programação. É oficial do Corpo de Bombeiros Militar e atualmente coordena a equipe de desenvolvimento de sistemas da Secretaria de Segurança Pública do Pará.