Este é o nosso repositório de clientes. Ele contém o aplicativo react.js para kitsu.
Confira os repositórios de ferramentas, dispositivos móveis, servidores e documentos da API.
O fato de você estar lendo isso provavelmente significa que você está interessado em contribuir para o aplicativo da Web do Kitsu. Se sim, seja bem -vindo! É muito fácil começar, e estamos aqui para ajudá -lo o tempo todo. Se você tiver alguma dúvida, não hesite em nos perguntar em nossa discórdia no canal #dev!
Antes de fazer uma solicitação de tração, leia o estilo de estilo e certifique -se de manter a base de código limpa e consistente para futuros desenvolvedores.
Você vai precisar de uma versão node.js bastante moderna. O LTS ativo é provavelmente a melhor opção, se você não tiver certeza. Nossas implantações usarão o LTS ativo, mas tentamos garantir que tudo funcione bem na versão atual.
Depois de ter um nó, execute o seguinte:
npm install (instala dependências)npm run dev (porta 3000 padrão) Agora visite http://localhost:3000 e você deve ver o aplicativo kitsu!
Por padrão, no modo de desenvolvimento, isso se conectará ao
staging.kitsu.io(nosso ambiente de pré-produção) para a API, o que significa que tudo o que você fizer será eliminado semanalmente. Você pode alterar isso para conectar -se à produção, se necessário, configurandoVITE_API_HOST=https://kitsu.io/no arquivo.env. Isso geralmente não é necessário, mas há algumas coisas que não funcionam totalmente na encenação.No futuro, planejamos integrar melhor isso no ambiente de desenvolvimento Kitsu-Tools.
Embora a estrutura básica do projeto deva ser familiar para a maioria dos desenvolvedores que usaram o React e o Vite no passado, o Kitsu é uma grande aplicação e tem mais estrutura do que você pode estar acostumado.
O Vite compila o aplicativo começando em um "ponto de entrada". No nosso caso, temos quatro, em três "construir metas":
BUILD_TARGET=client - O aplicativo Web Kitsu principal (V4)index.html - ponto de entrada principal para o aplicativo da web kitsuoauth2-callback.html -Ponto de entrada para um manipulador de retorno de chamada de uma biblioteca OAuth2 (principalmente apenas delegados à nossa nanoauth).BUILD_TARGET=server -versão renderizada do servidor do aplicativo da web kitsuserver.js - ponto de entrada principal para o aplicativo da web kitsuBUILD_TARGET=library - Uma biblioteca de componentes do aplicativo Web Kitsu (V4) para expor ao aplicativo V3 Ember durante a migração.src/entry-ember.tsx -As exportações que serão acessíveis a partir do aplicativo Ember src/assets/ - Ativos estáticos como ícones, ilustrações e animações importadas pelo aplicativo. Estes não são apenas copiados para o diretório de saída, devem ser importados e podem ser processados durante a compilação com vários plugins.src/components/ - componentes comuns e reutilizáveissrc/pages/ - componentes que renderizam uma página inteirasrc/layouts/ - componentes que fornecem uma estrutura de página reutilizávelsrc/contexts/ - React Contextos para compartilhar estado entre componentessrc/initializers/ - código imperativo que é executado durante a inicialização do aplicativo (evite -os, se possível, prefira ganchos no componente do aplicativo)src/constants/config.ts - expõe a configuração ao aplicativo em tempo de execuçãosrc/graphql/ - GraphQL, como os tipos de esquema gerado, escalares e trocas de URQL.src/hooks/ - ganchos de reação personalizados para o aplicativosrc/locales/ -Dados para cada localidade que apoiamos (traduções, locais de data-fn, etc.)src/errors/ - todas as nossas subclasses de errosrc/styles/ -Estilos em todo o aplicativo (não específicos para um componente), principalmente na forma de variáveis usadas em estilos de componentes. npm run codegen Se você alterar um arquivo .gql ou adicionar uma nova chave de tradução, precisará executar npm run codegen para que eles funcionem corretamente. O CodeGen do GraphQL gerará arquivos TypeScript para todas as consultas e o Intl CodeGen extrairá todas as teclas de tradução de seus componentes.
npm run storybookUsamos o Storybook para documentar componentes. Pedimos que você documente todos os novos componentes que você adicionar.
npm run test:unit # Runs unit tests (vitest)
npm run test:unit:watch # Opens vitest in watch mode
npm run test:e2e # Runs e2e tests (cypress)Temos duas suítes de teste:
.test.ts(x) arquivoscypress/Na maioria das vezes, recomendamos testar seu código com o Vitest. É uma experiência muito melhor e corre mais rápido. Dito isto, às vezes você precisa testar um fluxo de trabalho completo de ponta a ponta, e é para isso que o Cypress existe.
Usamos o Crowdin para lidar com traduções, vá para Crowdin.com/project/kitsu-web para sugerir mudanças ou adicionar novas traduções.
As traduções usam o formato sintaxe da mensagem da UTI. Leia a documentação da sintaxe.
Procurando criar um problema? Abra um relatório de bug ou solicitação de recurso no kitsu.