{"id":22451446,"url":"https://github.com/jonatassales/memed-react","last_synced_at":"2025-07-03T08:34:17.928Z","repository":{"id":45870882,"uuid":"332914616","full_name":"jonatassales/memed-react","owner":"jonatassales","description":"Biblioteca React para integração com prescrições médicas da Memed.","archived":false,"fork":false,"pushed_at":"2021-11-30T23:58:47.000Z","size":319,"stargazers_count":27,"open_issues_count":1,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-17T16:52:38.221Z","etag":null,"topics":["integracao","memed","prescricao","react"],"latest_commit_sha":null,"homepage":"https://memed-react-refs.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonatassales.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-25T23:35:05.000Z","updated_at":"2025-05-02T22:31:59.000Z","dependencies_parsed_at":"2022-08-31T02:11:22.199Z","dependency_job_id":null,"html_url":"https://github.com/jonatassales/memed-react","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/jonatassales/memed-react","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatassales%2Fmemed-react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatassales%2Fmemed-react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatassales%2Fmemed-react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatassales%2Fmemed-react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonatassales","download_url":"https://codeload.github.com/jonatassales/memed-react/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatassales%2Fmemed-react/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263290924,"owners_count":23443680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["integracao","memed","prescricao","react"],"created_at":"2024-12-06T06:07:59.645Z","updated_at":"2025-07-03T08:34:17.893Z","avatar_url":"https://github.com/jonatassales.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# memed-react\n`memed-react` é uma biblioteca desenvolvida para o ecossistema React com o objetivo de ajudar na integração com o serviço de prescrição médica online da [Memed](https://memed.com.br/). Algumas etapas da homologação já são feitas pela `lib`, como a desativação de algumas funções, adesão dos dados do paciente antes do módulo estar liberado para uso, e a criação do script em execução que carregam as instancias `MdHub` e `MdSinapsePrescricao`, responsáveis por alguns `bindings` de eventos e commandos.\n\n[![npm version](https://badge.fury.io/js/memed-react.svg)](https://badge.fury.io/js/memed-react) ![Lint and build](https://github.com/jonatassales/memed-react/workflows/Lint,%20build%20and%20test/badge.svg)\n\n## Exemplos\n- [Usando refs](https://github.com/jonatassales/memed-react-examples/tree/master/refs)\n\n## Demos\n- [Usando refs](https://memed-react-refs.vercel.app/)\n\n## Instalação\nPara instalar a biblioteca via `yarn` ou `npm` basta rodar no seu terminal:\n\n```bash\nnpm install memed-react\n```\n\nou\n\n```bash\nyarn add memed-react\n```\n\n## Uso\nA biblioteca garante que o script será criado, e o módulo liberado somente quando as funções `setDoctorToken` e `setPatient` forem chamadas com os respectivos valores. As funções podem ser obtidas do hook `useMemed` após seu componente estar sendo encapsulado pelo `MemedProvider`. Você pode acionar o módulo de prescrição passando uma `ref` do seu botão ou usando as funções `showPrescription` e `hidePrescription` para abrir e fechar o módulo de forma imperativa. Você consegue controlar o estado de inicialização do módulo usando a variável `loadingModule`.\n\n### Hook useMemed\nUm exemplo utilizando a `Refs`:\n\n```javascript\nimport React from 'react'\nimport Button from '@material-ui/core/Button'\nimport { useMemed } from 'memed-react'\n\nimport { Patient } from '@patient/domain/Patient'\n\ninterface PrescriptionButtonProps {\n  patient: Patient\n}\n\nexport default function PrescriptionButton(props: PrescriptionButtonProps): React.ReactElement {\n  const { patient } = props\n  const buttonRef = React.useRef(null)\n  const { setActionRef, setDoctorToken, setPatient, loadingModule } = useMemed()\n\n  React.useEffect(() =\u003e {\n    async function fetchDoctorToken() {\n      const response = await fetch('\u003cSUA_API\u003e/doctor/token')\n      const token = await response.json()\n      setDoctorToken(token)\n      setActionRef(buttonRef)\n      setPatient({\n        nome: patient.name,\n        endereco: patient.address?.streetAddress || '',\n        cidade: patient.address?.city || '',\n        telefone: patient.phoneNumber,\n        altura: patient.height,\n        idExterno: patient.identityDocument\n      })\n    }\n    \n    if (patient) {\n      fetchDoctorToken()\n    }\n  }, [patient, setDoctorToken, setActionRef, setPatient])\n\n  return (\n    \u003cButton ref={buttonRef} disabled={loadingModule}\u003e\n      {loadingModule ? 'Loading...' : 'Prescrição'}\n    \u003c/Button\u003e\n  )\n}\n\n```\n\nO processo de criação do médico junto a memed e recuperação do token você pode ver [aqui](https://ajuda.memed.com.br/pt-BR/collections/1456059-sou-parceiro-integracao).\n\n### Provider\n```javascript\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport MemedProvider from 'memed-react'\n\nReactDOM.render((\n  \u003cMemedProvider color=\"#00B8D6\" scriptSrc={productionSrc} scriptId={scriptId}\u003e\n    \u003cApp /\u003e\n  \u003c/MemedProvider\u003e\n), root)\n```\n\nEmbora as `props` sejam opcionais, você deve trocar `scriptSrc` para o `src` de produção após pegar as chaves de produção. Do contrário o default será a `URL` de `sandbox` da memed.\n\n## Contribuições\nToda e qualquer contribuição (PRs, issues, documentação, exemplos) será bem vinda. Crie um pull request. Utilize [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) para fazer seus `commits` e siga as regras do `ghooks` após a ação. Vamos transformar a saúde no Brasil com tecnologia. :blue_heart:\n\n## Licença\nMIT\n\n\u003e A empresa Memed não é resposável por atualizações dessa biblioteca. Qualquer atualização da lib principal que possa quebrar a execução dessa biblioteca é de minha responsabilidade e dos colaboradores. Caso você queira fazer a integração diretamente com os módulos oficiais, acesse esse [link](https://ajuda.memed.com.br/pt-BR/articles/2519616-1-passo-a-passo-para-integracao).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonatassales%2Fmemed-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonatassales%2Fmemed-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonatassales%2Fmemed-react/lists"}