1.1.1 • Published 2 years ago

react-fenestra v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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

npm.io

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

PropriedadeTipoValor PadrãoDetalhes
iconsArray(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

PropriedadeTipoValor PadrãoDetalhes
iconComponente(vazio)Conteúdo a ser renderizado no local do ícone.
titleComponente(vazio)Conteúdo a ser renderizado no local do título.
onClickFunção() => undefinedFunçã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:

AtributoTipoValor PadrãoDetalhes
windowObjeto(Segue abaixo)Detalhes da janela em que foi aberto o componente.
window.titlestring(vazio)Título da janela
window.indexinteiro(incremental)Indice único da janela.
window.contentDefinição ReactnullDefinição do Conteúdo da janela. Tal definição receberá a propriedade fenestra ao ser instanciada.
window.maximizedboolfalseIndica se a janela está maximizada.
window.minimizedboolfalseIndica se a janela está minimizada.
window.activebooltrueIndica se a janela está ativa (foreground).
window.topinteiro0Indica a distância da janela à borda superior do desktop.
window.leftinteiro0Indica a distância da janela à borda esquerda do desktop.
window.widthinteiro600Indica a Largura atual da janela.
window.heightinteiro400Indica a Altura atual da janela.
window.movingboolfalseIndica se a janela está em movimento.
window.resizingboolfalseIndica se a janela está sendo redimensionada.
window.resizeablebooltrueIndica se a janela é redimensionável.
window.moveablebooltrueIndica se a janela é movível.
windowswindow[][]Lista de todas as janelas do desktop.
openFunção(window, callback = (window) => undefined) => undefinedAbre uma nova janela no desktop com os parâmetros definidos por window. Após esta ação, o callback é chamado.
closeFunção(w = window, callback = () => undefined) => undefinedFecha a janela atual ou a identificada. Após esta ação, o callback é chamado.
minimizeFunção(w = window) => undefinedMinimiza a janela.
toggleMaximizedFunção(w = window) => undefinedMaximiza/Restaura a Janela.
activateFunção(w = window) => undefinedAtiva a janela.
setTitleFunção(title, w = window) => undefinedAltera o Título da Janela.
setContentFunção(content, w = window) => undefinedAltera o conteúdo da janela.
setPositionFunção(top, left, w = window) => undefinedAltera a posição da janela.
setSizeFunção(width, height, w = window) => undefinedAltera o tamanho da janela.
startMoveFunção(posX, posY, w = window) => undefinedInicia a movimentação da janela a partir da posição atual.
startResizeFunção(posX, posY, dir, w = window) => undefinedInicia 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 alfredogaliza@gmail.com

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á.

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago