Pular para o conteúdo principal

AppHelper

O pacote @churchapps/apphelper fornece componentes React compartilhados e utilitários para todos os aplicativos web ChurchApps. É um pacote publicado único que expõe módulos de recurso através de pontos de entrada de subcaminho -- login, doações, formulários, markdown e funcionalidade de site/CMS -- ao lado de um conjunto principal de componentes e helpers compartilhados.

Antes de Começar

Pontos de Entrada

O pacote define exportações de subcaminho em seu package.json, portanto cada módulo de recurso é importável por conta própria:

Ponto de entradaConteúdo
@churchapps/apphelperComponentes principais, helpers e hooks
@churchapps/apphelper/loginUI de login e registro
@churchapps/apphelper/donationsComponentes de doação e dar
@churchapps/apphelper/formsComponentes de envio de formulário
@churchapps/apphelper/markdownEditores e renderizadores Markdown e HTML
@churchapps/apphelper/websiteComponentes do construtor de site e CMS

Quem Consome O Quê

Antes de mudar uma exportação compartilhada, verifique quais aplicativos a importam:

Área de ExportaçãoO que forneceConsumido por
Root -- componentes principais e hooksDisplayBox, InputBox, Loading, PageHeader, PersonAvatar, SmallButton, ErrorMessages, ExportLink, useMountedState, além de re-exportados utilitários @churchapps/helpers (ApiHelper, DateHelper, Locale, UserHelper, etc.)B1Admin, B1App, B1Transfer, LessonsApp
Root -- chrome do siteSiteHeader (nav, menu de usuário, notificações)B1Admin, B1Transfer, LessonsApp
Root -- editores de conteúdo adminImageEditor, HelpIconB1Admin
Root -- encanamento em tempo realSocketHelper, SubscriptionManager, NotificationServiceB1Admin, B1App
Root -- stores de chat/presençaConversationStore, PresenceStoreB1App
Root -- UI de notas e mensagensNotes (notas de pessoal em pessoas/tarefas); AddNote, SubscriptionToggle (mensagem de membro)B1Admin (Notes), B1App (AddNote, SubscriptionToggle)
Root -- específico de LessonsAnalyticsHelper, FloatingSupport, SupportModalLessonsApp
./loginLoginPage, LogoutPageB1Admin, B1App, B1Transfer, LessonsApp
./markdownMarkdownEditor, MarkdownPreviewLight (compartilhado); MarkdownPreview, HtmlEditor (edição de conteúdo admin)B1Admin, B1App, LessonsApp
./donationsMultiGatewayDonationForm, RecurringDonations, PaymentMethods, StripePaymentMethod, DonationHelper/getPaymentProvider (compartilhado); FundDonations (apenas admin)B1Admin, B1App
./formsFormSubmissionEdit (renderiza ConversationalForm quando o displayMode do formulário é conversational)B1Admin, B1App
./websiteNúcleo de renderização de página compartilhado pelo editor e renderizador (Element + os renderizadores por tipo resolvidos via ElementRegistry, StyleHelper, DroppableArea, DraggableWrapper, Theme, YoutubeBackground, SectionDivider/parseDividerConfig); widgets de todo o site (AnnouncementBanner, Launcher + seus helpers parse*Config); Animate, ElementBlock, NonAuthDonationWrapper, SermonElement usado apenas pelo renderizador públicoB1Admin (editor), B1App (componentes do editor + renderizador)

B1Transfer e LessonsApp usam apenas os pontos de entrada raiz e login -- os subcaminhos donations, forms e website são consumidos exclusivamente por B1Admin e B1App hoje.

Setup para Desenvolvimento Local

Este pacote vive no espaço de trabalho Packages ao lado das outras bibliotecas compartilhadas:

  1. Clone o espaço de trabalho:

    git clone https://github.com/ChurchApps/Packages.git
  2. Instale dependências na raiz do espaço de trabalho:

    cd Packages && yarn install
  3. Lance o playground Vite do diretório do pacote:

    cd apphelper && yarn dev

    O servidor dev do playground inicia em http://localhost:3001. Copie playground/dotenv.sample para playground/.env e preencha os valores necessários primeiro.

Para construir o pacote para consumo (compila para dist/ e copia assets de locale/CSS), execute yarn workspace @churchapps/apphelper build -- ou yarn build na raiz para construir cada pacote em ordem de dependência. Para testar um build não publicado dentro de um aplicativo consumidor, use um portal Yarn temporário -- veja Desenvolvimento Local Contra um Aplicativo Consumidor.

Dica

O playground é a maneira mais rápida de desenvolver e testar componentes AppHelper. Ele hot-reloada o servidor dev Vite para que você possa ver mudanças em tempo real.

Publicação

Lançamentos passam por changesets: execute yarn changeset na raiz do espaço de trabalho com cada mudança, depois yarn publish-all quando pronto para lançar. Veja Visão Geral de Bibliotecas Compartilhadas para o fluxo completo.

Aviso

Nunca remova ou renomeie uma exportação até que a substituição seja publicada e cada consumidor tenha sido migrado -- grep todos os repos consumidores antes de mesclar uma remoção.

Artigos Relacionados