diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 241d01f2..1844a75f 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -5,6 +5,7 @@ module.exports = { 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react-hooks/recommended', + "plugin:tailwindcss/recommended" ], ignorePatterns: ['dist', '.eslintrc.cjs'], parser: '@typescript-eslint/parser', diff --git a/package-lock.json b/package-lock.json index 33731021..de03d0db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "date-fns": "^3.6.0", + "eslint-plugin-tailwindcss": "^3.15.2", "formik": "^2.4.6", "lucide-react": "^0.378.0", "qs": "^6.12.1", @@ -3374,6 +3375,21 @@ "eslint": ">=7" } }, + "node_modules/eslint-plugin-tailwindcss": { + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.15.2.tgz", + "integrity": "sha512-+HJfWcyP5B/e8r8qVSaTbf2i4+HsESJJsue66qFHRstV11CNTfdaDD9zkCVA1pm2EplBZ/BSJ3Htfzvb4YTVKw==", + "dependencies": { + "fast-glob": "^3.2.5", + "postcss": "^8.4.4" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "tailwindcss": "^3.4.0" + } + }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", diff --git a/package.json b/package.json index 29dd3ef1..63a86e30 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,8 @@ "dev": "vite", "build": "tsc && vite build", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "lint:debug": "eslint ./src --ext .ts,.tsx --debug", + "lint:fix": "eslint ./src --ext .ts,.tsx --fix", "preview": "vite preview" }, "dependencies": { @@ -25,15 +27,16 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "date-fns": "^3.6.0", + "eslint-plugin-tailwindcss": "^3.15.2", "formik": "^2.4.6", "lucide-react": "^0.378.0", "qs": "^6.12.1", + "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.51.4", "react-input-mask": "^2.0.4", "react-router-dom": "^6.23.0", "react-select": "^5.8.0", - "react": "^18.2.0", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", "yup": "^1.4.0" @@ -41,16 +44,16 @@ "devDependencies": { "@types/node": "^20.12.8", "@types/qs": "^6.9.15", + "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "@types/react-input-mask": "^3.0.5", - "@types/react": "^18.2.66", "@typescript-eslint/eslint-plugin": "^7.2.0", "@typescript-eslint/parser": "^7.2.0", "@vitejs/plugin-react": "^4.2.1", "autoprefixer": "^10.4.19", + "eslint": "^8.57.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.6", - "eslint": "^8.57.0", "postcss": "^8.4.38", "tailwindcss": "^3.4.3", "typescript": "^5.2.2", diff --git a/src/components/Alert/Alert.tsx b/src/components/Alert/Alert.tsx index 34c34b7c..6a8c3e0c 100644 --- a/src/components/Alert/Alert.tsx +++ b/src/components/Alert/Alert.tsx @@ -5,7 +5,7 @@ const Alert = (props: IAlert) => { const { description, startAdornment } = props; return ( - +
{startAdornment}
{description}
diff --git a/src/components/BurgerMenu/BurgerMenu.tsx b/src/components/BurgerMenu/BurgerMenu.tsx index 2f823e5b..e90bb257 100644 --- a/src/components/BurgerMenu/BurgerMenu.tsx +++ b/src/components/BurgerMenu/BurgerMenu.tsx @@ -35,13 +35,13 @@ const BurgerMenu = () => { return ( - + - +
{session && ( -
+
Olá, {session.name}
@@ -50,35 +50,35 @@ const BurgerMenu = () => { } + icon={} /> } + icon={} openExternal={true} /> } + icon={} openExternal={true} /> } + icon={} openExternal={true} /> } + icon={} /> } + icon={} /> {partners.length > 0 && ( @@ -89,7 +89,7 @@ const BurgerMenu = () => { key={idx} label={partner.name} link={partner.link} - icon={} + icon={} /> ))} @@ -98,7 +98,7 @@ const BurgerMenu = () => { {session && (
Sair diff --git a/src/components/BurgerMenu/components/BurguerMenuItem/BurguerMenuItem.tsx b/src/components/BurgerMenu/components/BurguerMenuItem/BurguerMenuItem.tsx index 6f42570f..3ab4b7e4 100644 --- a/src/components/BurgerMenu/components/BurguerMenuItem/BurguerMenuItem.tsx +++ b/src/components/BurgerMenu/components/BurguerMenuItem/BurguerMenuItem.tsx @@ -32,7 +32,7 @@ const BurguerMenuItem = React.forwardRef< > {icon} {label} - {openExternal && } + {openExternal && } ); }); diff --git a/src/components/CardAboutShelter/CardAboutShelter.tsx b/src/components/CardAboutShelter/CardAboutShelter.tsx index 34525112..1997eff9 100644 --- a/src/components/CardAboutShelter/CardAboutShelter.tsx +++ b/src/components/CardAboutShelter/CardAboutShelter.tsx @@ -25,8 +25,8 @@ const CardAboutShelter = (props: ICardAboutShelter) => { const formatAddress = checkAndFormatAddress(shelter, false); return ( - -
Sobre o abrigo
+ +
Sobre o abrigo
} label={formatAddress} /> {Boolean(shelter.city) && ( diff --git a/src/components/CardAboutShelter/components/InfoRow/InfoRow.tsx b/src/components/CardAboutShelter/components/InfoRow/InfoRow.tsx index 9b70fb2a..30abb84a 100644 --- a/src/components/CardAboutShelter/components/InfoRow/InfoRow.tsx +++ b/src/components/CardAboutShelter/components/InfoRow/InfoRow.tsx @@ -18,7 +18,7 @@ const InfoRow = React.forwardRef( ) : isLink ? ( {value} @@ -47,7 +47,7 @@ const InfoRow = React.forwardRef( {ValueComp} {clipboardButton && value && (
navigator.clipboard.writeText(value)} > copiar diff --git a/src/components/Chip/Chip.tsx b/src/components/Chip/Chip.tsx index 6440a5c3..6bdff6eb 100644 --- a/src/components/Chip/Chip.tsx +++ b/src/components/Chip/Chip.tsx @@ -5,7 +5,7 @@ import { cva } from 'class-variance-authority'; const Chip = React.forwardRef((props, ref) => { const { label, className, variant = 'info', ...rest } = props; - const variants = cva('px-4 py-1.5 font-medium text-sm md:text-md rounded-2xl', { + const variants = cva('md:text-md rounded-2xl px-4 py-1.5 text-sm font-medium', { variants: { variant: { warn: 'bg-light-yellow', diff --git a/src/components/DialogSelector/DialogSelector.tsx b/src/components/DialogSelector/DialogSelector.tsx index 5f23c2e8..a4ecb240 100644 --- a/src/components/DialogSelector/DialogSelector.tsx +++ b/src/components/DialogSelector/DialogSelector.tsx @@ -51,7 +51,7 @@ const DialogSelector = (props: IDialogSelectorProps) => { -
+
{ />
-
+
setSelectedItem(v)} diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx index 58f6b67a..5fb6554e 100644 --- a/src/components/Footer/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -27,17 +27,17 @@ const Footer = React.forwardRef< aqui

- - + + Projeto Open Source disponível em{' '} Github - +
); diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 9dde1265..2dd3fec0 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -22,7 +22,7 @@ const Header = React.forwardRef((props, ref) => { )} {...rest} > -
+
{startAdornment} {title} diff --git a/src/components/LoadingScreen/LoadingScreen.tsx b/src/components/LoadingScreen/LoadingScreen.tsx index 11a2993e..c80d3bcc 100644 --- a/src/components/LoadingScreen/LoadingScreen.tsx +++ b/src/components/LoadingScreen/LoadingScreen.tsx @@ -7,11 +7,11 @@ const LoadingScreen = (props: ILoadingScreen) => { const { variant = 'full', className, ...rest } = props; const variants = cva( - 'bg-zinc-800 opacity-60 w-full flex items-center justify-center min-h-screen z-50', + 'z-50 flex min-h-screen w-full items-center justify-center bg-zinc-800 opacity-60', { variants: { variant: { - full: 'absolute top-0 right-0 bottom-0 left-0', + full: 'absolute inset-0', content: 'w-full', }, }, @@ -23,7 +23,7 @@ const LoadingScreen = (props: ILoadingScreen) => { return (
- +
); }; diff --git a/src/components/LoadingSkeleton/LoadingSkeleton.tsx b/src/components/LoadingSkeleton/LoadingSkeleton.tsx index b4e02128..20d94128 100644 --- a/src/components/LoadingSkeleton/LoadingSkeleton.tsx +++ b/src/components/LoadingSkeleton/LoadingSkeleton.tsx @@ -5,34 +5,34 @@ type LoadingSkeletonProps = { const LoadingSkeleton = ({ amountItems }: LoadingSkeletonProps) => { return (
-
    +
      {Array.from({length: amountItems,}).map((_, index) => ( -
    • -
      -
      -
      +
    • +
      +
      +
      -
      +
      -
      +
      {Array.from({length: 7}).map((_, index) => (
      ))}
      -
      +
      {Array.from({length: 7}).map((_, index) => (
      ))}
      diff --git a/src/components/NoFoundSearch/NoFoundSearch.tsx b/src/components/NoFoundSearch/NoFoundSearch.tsx index 1c38e59e..63d0fbe8 100644 --- a/src/components/NoFoundSearch/NoFoundSearch.tsx +++ b/src/components/NoFoundSearch/NoFoundSearch.tsx @@ -2,14 +2,14 @@ import { SearchX } from 'lucide-react'; const NoFoundSearch = () => { return ( -
      +
      -

      +

      A sua busca não encontrou nenhum resultado{' '}

      -

      +

      Verifique os termos buscados e tente novamente

      diff --git a/src/components/SearchInput/SearchInput.tsx b/src/components/SearchInput/SearchInput.tsx index 225ddb87..8c334532 100644 --- a/src/components/SearchInput/SearchInput.tsx +++ b/src/components/SearchInput/SearchInput.tsx @@ -20,7 +20,7 @@ const SearchInput = React.forwardRef(
      diff --git a/src/components/VerifiedBadge/VerifiedBadge.tsx b/src/components/VerifiedBadge/VerifiedBadge.tsx index 48629be7..f8be4b8d 100644 --- a/src/components/VerifiedBadge/VerifiedBadge.tsx +++ b/src/components/VerifiedBadge/VerifiedBadge.tsx @@ -4,7 +4,7 @@ import WithTooltip from '@/components/ui/with-tooltip.tsx'; const VerifiedBadge = () => { return ( - + ) } diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx index e6a723d0..cf960f03 100644 --- a/src/components/ui/accordion.tsx +++ b/src/components/ui/accordion.tsx @@ -32,7 +32,7 @@ const AccordionTrigger = React.forwardRef< {...props} > {children} - + )) diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index 58bd1541..a1dfa294 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -24,7 +24,7 @@ const buttonVariants = cva( default: 'h-10 px-4 py-2', sm: 'h-9 rounded-md px-3', lg: 'h-11 rounded-md px-8', - icon: 'h-10 w-10', + icon: 'size-10', }, }, defaultVariants: { @@ -63,7 +63,7 @@ const Button = React.forwardRef( disabled={loading || disabled} {...props} > - {loading ? : children} + {loading ? : children} ); } diff --git a/src/components/ui/checkbox.tsx b/src/components/ui/checkbox.tsx index ddbdd01d..77d113cb 100644 --- a/src/components/ui/checkbox.tsx +++ b/src/components/ui/checkbox.tsx @@ -19,7 +19,7 @@ const Checkbox = React.forwardRef< - + )) diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx index c23630eb..224081c2 100644 --- a/src/components/ui/dialog.tsx +++ b/src/components/ui/dialog.tsx @@ -43,7 +43,7 @@ const DialogContent = React.forwardRef< > {children} - + Close diff --git a/src/components/ui/radio-group.tsx b/src/components/ui/radio-group.tsx index 43b43b48..d122f010 100644 --- a/src/components/ui/radio-group.tsx +++ b/src/components/ui/radio-group.tsx @@ -32,7 +32,7 @@ const RadioGroupItem = React.forwardRef< {...props} > - + ) diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx index fe56d4d3..003afbe6 100644 --- a/src/components/ui/select.tsx +++ b/src/components/ui/select.tsx @@ -24,7 +24,7 @@ const SelectTrigger = React.forwardRef< > {children} - + )) @@ -42,7 +42,7 @@ const SelectScrollUpButton = React.forwardRef< )} {...props} > - + )) SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName @@ -59,7 +59,7 @@ const SelectScrollDownButton = React.forwardRef< )} {...props} > - + )) SelectScrollDownButton.displayName = @@ -121,9 +121,9 @@ const SelectItem = React.forwardRef< )} {...props} > - + - + diff --git a/src/components/ui/sheet.tsx b/src/components/ui/sheet.tsx index 117f9957..f3afc380 100644 --- a/src/components/ui/sheet.tsx +++ b/src/components/ui/sheet.tsx @@ -29,7 +29,7 @@ const SheetOverlay = React.forwardRef< SheetOverlay.displayName = SheetPrimitive.Overlay.displayName; const sheetVariants = cva( - 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500', + 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out', { variants: { side: { @@ -64,7 +64,7 @@ const SheetContent = React.forwardRef< > {children} - + diff --git a/src/components/ui/toast.tsx b/src/components/ui/toast.tsx index a8224775..22f7d34d 100644 --- a/src/components/ui/toast.tsx +++ b/src/components/ui/toast.tsx @@ -81,7 +81,7 @@ const ToastClose = React.forwardRef< toast-close="" {...props} > - + )) ToastClose.displayName = ToastPrimitives.Close.displayName diff --git a/src/components/ui/with-tooltip.tsx b/src/components/ui/with-tooltip.tsx index 6f62b108..c358c840 100644 --- a/src/components/ui/with-tooltip.tsx +++ b/src/components/ui/with-tooltip.tsx @@ -16,7 +16,7 @@ const WithTooltip = ({ children, content }: WithTooltipProps) => { {children} - + {content} diff --git a/src/pages/AboutUs/AboutUs.tsx b/src/pages/AboutUs/AboutUs.tsx index 080c909e..e90c6de8 100644 --- a/src/pages/AboutUs/AboutUs.tsx +++ b/src/pages/AboutUs/AboutUs.tsx @@ -29,19 +29,19 @@ const AboutUs = () => { ); return ( -
      +
      } /> -
      -

      +
      +

      Sobre nós

      -

      +

      Conheça a história do projeto SOS RS

      -

      +

      Como tudo começou

      -

      +

      Iniciado no domingo (04/05) e concluído na segunda (05/05), após 18 horas seguidas de desenvolvimento, nosso webapp SOS RS 🛟, idealizado e desenvolvido por{' '} @@ -86,7 +86,7 @@ const AboutUs = () => { , atingiu resultados verdadeiramente inspiradores.

      -

      +

      O SOS RS rapidamente ganhou destaque nos grupos de WhatsApp, graças ao seu modelo colaborativo. Alcançamos rapidamente o nível de todas as outras iniciativas de gestão de demanda combinadas e lançamos nossa @@ -94,14 +94,14 @@ const AboutUs = () => { nosso projeto alcançou 400 estrelas no GitHub e foi{' '} forkeado mais de 150 vezes!

      -

      +

      Nossos parceiros

      -

      +

      Formamos parcerias sólidas com mais de 1400 voluntários, fortalecendo ainda mais nossa missão. Hoje, comemoramos números que falam por si.

      -
      +
      } topLabel="mais de" @@ -124,12 +124,12 @@ const AboutUs = () => { className="w-full" />
      -

      +

      Atualmente, o SOS RS 🛟 apoia a gestão das demandas e necessidades dos abrigos do Rio Grande do Sul com informações públicas, atualizadas, confiáveis e auditáveis.

      -

      +

      Frentes atendidas

      @@ -137,22 +137,22 @@ const AboutUs = () => { ))}
      -

      +

      O grupo de voluntários do SOS RS já soma mais de 2100 pessoas e cerca de 126 mil horas de trabalho desde a criação da iniciativa.

      -

      +

      Contribuidores da plataforma ({contributors.length})

      {loading ? ( - + ) : ( contributors.map((contributor, idx) => ( @@ -161,13 +161,13 @@ const AboutUs = () => { )}
      -
      -

      +

      +

      Agradecemos a todos que têm tornado este impacto possível! Vamos continuar trabalhando juntos para fazer a diferença. Acesse:{' '} sos-rs.com diff --git a/src/pages/AboutUs/components/AboutCardInfo/AboutCardInfo.tsx b/src/pages/AboutUs/components/AboutCardInfo/AboutCardInfo.tsx index 99ac8b8a..75166640 100644 --- a/src/pages/AboutUs/components/AboutCardInfo/AboutCardInfo.tsx +++ b/src/pages/AboutUs/components/AboutCardInfo/AboutCardInfo.tsx @@ -29,7 +29,7 @@ const AboutCardInfo = React.forwardRef( className: 'w-4 h-4 md:w-6 md:h-6', })}

      -
      +
      {topLabel} {centerLabel} {bottomLabel} diff --git a/src/pages/AboutUs/components/ServicedFrontInfo/ServicedFrontInfo.tsx b/src/pages/AboutUs/components/ServicedFrontInfo/ServicedFrontInfo.tsx index 6c4e82a5..d637e27e 100644 --- a/src/pages/AboutUs/components/ServicedFrontInfo/ServicedFrontInfo.tsx +++ b/src/pages/AboutUs/components/ServicedFrontInfo/ServicedFrontInfo.tsx @@ -11,10 +11,10 @@ const ServicedFrontInfo = React.forwardRef< return (
      -
      +
      {icon}
      -
      +
      {title}

      {description}

      diff --git a/src/pages/CreateShelter/CreateShelter.tsx b/src/pages/CreateShelter/CreateShelter.tsx index 6003b603..77de6f96 100644 --- a/src/pages/CreateShelter/CreateShelter.tsx +++ b/src/pages/CreateShelter/CreateShelter.tsx @@ -112,10 +112,10 @@ const CreateShelterComponent = () => { }, [cepData, setFieldValue, setErrors]); return ( -
      +
      { } /> -
      +
      Cadastrar novo abrigo

      Adicione as informações necessarias para o cadastro do novo abrigo.

      -
      +
      { helperText={errors.zipCode} /> {Boolean(isLoadingZipCodeData) && ( - + )} { error={!!errors.neighbourhood} helperText={errors.neighbourhood} /> -
      +
      @@ -189,7 +189,7 @@ const CreateShelterComponent = () => { })} /> {errors.city && ( -

      {errors.city}

      +

      {errors.city}

      )}
      { helperText={errors.pix} />
      -
      +
      diff --git a/src/pages/CreateSupply/CreateSupply.tsx b/src/pages/CreateSupply/CreateSupply.tsx index 18fd1a3a..9626636c 100644 --- a/src/pages/CreateSupply/CreateSupply.tsx +++ b/src/pages/CreateSupply/CreateSupply.tsx @@ -81,10 +81,10 @@ const CreateSupply = () => { if (loading) return ; return ( -
      +
      { } /> -
      +
      Cadastrar novo item

      Informe o nome do item que você deseja cadastrar, a categoria e a prioridade

      -
      +
      -
      +
      { @@ -171,7 +171,7 @@ const CreateSupply = () => { value={`${priority}`} className="text-muted-foreground" > -
      +
      {label}
      @@ -182,11 +182,11 @@ const CreateSupply = () => {
      -
      +
      diff --git a/src/pages/EditShelterSupply/EditShelterSupply.tsx b/src/pages/EditShelterSupply/EditShelterSupply.tsx index c7729e6e..c6530b38 100644 --- a/src/pages/EditShelterSupply/EditShelterSupply.tsx +++ b/src/pages/EditShelterSupply/EditShelterSupply.tsx @@ -146,10 +146,10 @@ const EditShelterSupply = () => { {...modalData} /> )} -
      +
      { } /> -
      +
      Editar itens do abrigo

      Para cada item da lista abaixo, informe a disponibilidade no abrigo @@ -168,13 +168,13 @@ const EditShelterSupply = () => {

      -
      +
      { }} />
      -
      +
      {Object.entries(supplyGroups).map(([key, values], idx) => { const items: ISupplyRowItemProps[] = values .map((v) => { diff --git a/src/pages/EditShelterSupply/components/SupplyRow/SupplyRow.tsx b/src/pages/EditShelterSupply/components/SupplyRow/SupplyRow.tsx index a4d59c7d..43df8415 100644 --- a/src/pages/EditShelterSupply/components/SupplyRow/SupplyRow.tsx +++ b/src/pages/EditShelterSupply/components/SupplyRow/SupplyRow.tsx @@ -6,8 +6,8 @@ const SupplyRow = (props: ISupplyRowProps) => { const { name, items, onClick } = props; return ( -
      -

      {name}

      +
      +

      {name}

      {items.map((item, idy) => ( { return (

      {name}

      -
      +
      -

      {label}

      +

      {label}

      {Boolean(quantity) && {quantity}}
      diff --git a/src/pages/Home/Home.tsx b/src/pages/Home/Home.tsx index 4f51f924..c2697507 100644 --- a/src/pages/Home/Home.tsx +++ b/src/pages/Home/Home.tsx @@ -88,7 +88,7 @@ const Home = () => { }, [refresh, filterData, shelters.filters, shelters.page, shelters.perPage]); return ( -
      +
      {isModalOpen && ( { title="SOS Rio Grande do Sul" startAdornment={} endAdornment={ -
      +
      @@ -143,7 +143,7 @@ const Home = () => { hasMoreItems={hasMore} onOpenModal={() => setOpenModal(true)} onClearSearch={clearSearch} - className="flex-1 p-4 max-w-4xl" + className="max-w-4xl flex-1 p-4" />
      diff --git a/src/pages/Home/components/Filter/CitiesFilter.tsx b/src/pages/Home/components/Filter/CitiesFilter.tsx index c4b8d821..117b69f0 100644 --- a/src/pages/Home/components/Filter/CitiesFilter.tsx +++ b/src/pages/Home/components/Filter/CitiesFilter.tsx @@ -26,10 +26,10 @@ export const CitiesFilter = ({ })); return ( -
      -
      -

      Cidades

      -

      +

      +
      +

      Cidades

      +

      Selecione uma ou mais cidades para pesquisar.

      diff --git a/src/pages/Home/components/Filter/Filter.tsx b/src/pages/Home/components/Filter/Filter.tsx index 344fddd6..99016f34 100644 --- a/src/pages/Home/components/Filter/Filter.tsx +++ b/src/pages/Home/components/Filter/Filter.tsx @@ -149,15 +149,15 @@ const Filter = (props: IFilterProps) => { return ( - + Faça sua busca: -
      -
      +
      +
      @@ -173,15 +173,15 @@ const Filter = (props: IFilterProps) => { }} /> -
      -

      Busca avançada

      -

      +

      +

      Busca avançada

      +

      Você pode buscar pelo item que os abrigos precisam urgentemente de doação ou por itens que os abrigos tem disponibilidade para doar.

      -
      -
      - -
      + +
      diff --git a/src/pages/Home/components/ShelterListItem/ShelterListItem.tsx b/src/pages/Home/components/ShelterListItem/ShelterListItem.tsx index 391585e5..4d9aca4f 100644 --- a/src/pages/Home/components/ShelterListItem/ShelterListItem.tsx +++ b/src/pages/Home/components/ShelterListItem/ShelterListItem.tsx @@ -31,7 +31,7 @@ const Wrapper = ({ if (active) return {children}; else return ( -
      +
      {children}
      ); @@ -69,10 +69,10 @@ const ShelterListItem = (props: IShelterListItemProps) => { return ( -
      +
      -

      +

      {data.name}

      {data.verified && ( @@ -83,14 +83,14 @@ const ShelterListItem = (props: IShelterListItemProps) => {
      {data.actived && ( )}
      {availability}
      -
      +
      {data.address}
      {data.shelterSupplies.length > 0 && ( @@ -109,7 +109,7 @@ const ShelterListItem = (props: IShelterListItemProps) => { /> )} - + Atualizado em {updatedAtDate}
      diff --git a/src/pages/Home/components/ShelterListView/ShelterListView.tsx b/src/pages/Home/components/ShelterListView/ShelterListView.tsx index ec57fc7b..336cc237 100644 --- a/src/pages/Home/components/ShelterListView/ShelterListView.tsx +++ b/src/pages/Home/components/ShelterListView/ShelterListView.tsx @@ -35,7 +35,7 @@ const ShelterListView = React.forwardRef( return (
      -

      +

      Abrigos disponíveis ({count})

      ( : undefined } /> -
      +
      {filterData.cities?.map((item) => (
      onCitiesChange?.(filterData.cities.filter((it) => it !== item)) } > - {item} + {item}
      ))}
      @@ -69,20 +69,20 @@ const ShelterListView = React.forwardRef( {searchParams.toString() && ( )} @@ -107,7 +107,7 @@ const ShelterListView = React.forwardRef( Carregar mais ) : ( -

      +

      Não há mais registros

      )} diff --git a/src/pages/Home/components/ShelterSupplyCategoryRow/ShelterSupplyCategoryRow.tsx b/src/pages/Home/components/ShelterSupplyCategoryRow/ShelterSupplyCategoryRow.tsx index a711f3f0..4e2da592 100644 --- a/src/pages/Home/components/ShelterSupplyCategoryRow/ShelterSupplyCategoryRow.tsx +++ b/src/pages/Home/components/ShelterSupplyCategoryRow/ShelterSupplyCategoryRow.tsx @@ -16,11 +16,11 @@ const ShelterSupplyCategoryRow = React.forwardRef< return (
      -

      +

      {title}

      {description &&

      {description}

      } -
      +
      {tags.map((s, idx) => ( ))} diff --git a/src/pages/PrivacyPolicy/PrivacyPolicy.tsx b/src/pages/PrivacyPolicy/PrivacyPolicy.tsx index d7de826b..115e0323 100644 --- a/src/pages/PrivacyPolicy/PrivacyPolicy.tsx +++ b/src/pages/PrivacyPolicy/PrivacyPolicy.tsx @@ -2,20 +2,20 @@ import { BurgerMenu, Header } from '@/components'; const PrivacyPolicy = () => { return ( -
      +
      } /> -
      -

      +
      +

      Política de privacidade

      -

      +

      Ao entrar para o SOS RS 🛟, você nos confia uma série de informações. E nós cuidamos e protegemos essas informações, para você. Aqui você vai entender quais informações coletamos e o porquê de fazermos isso. E, ainda, como você pode atualizar, acompanhar ou, até mesmo, excluir esses dados.

      -

      +

      Desenvolvemos um mapa dinâmico que consolida diversas informações sobre as enchentes, incluindo localização de abrigos e suas demandas, o que ajuda diariamente as vítimas das enchentes no RS. Nossas @@ -23,7 +23,7 @@ const PrivacyPolicy = () => { disponibilidade dos abrigos e as necessidades de doação para cada um deles.

      -

      +

      O SOS RS 🛟 declara manter sigilo e confidencialidade sobre os dados pessoais cadastrados, mas, como a plataforma é alimentada por toda a comunidade, não nos responsabilizamos pela: @@ -33,35 +33,35 @@ const PrivacyPolicy = () => {

    • 2. Qualidades de eventuais itens doados;
    • 3. Correção das necessidades apontadas;
    -

    +

    Declaramos seguir os princípios de proteção de dados consolidados nas legislações vigentes no Brasil, especialmente, a Resolução{' '} CFM Nº 2299 DE 30/09/2021.

    -
    +
    Coleta de informações
    -

    +

    Coletamos apenas informações imprescindíveis para desempenhar nosso propósito. As informações coletadas e como essas informações são utilizadas dependem de como e do quanto você utiliza o SOS RS 🛟 . Armazenamos as informações que coletamos.

    -
    +
    Itens que você cria ou nos fornece
    -

    +

    Ao cadastrar um abrigo, você nos fornece, inicialmente, informações pessoais, como seu nome e CPF. Ao alimentar nosso aplicativo, você fornece dados sobre os abrigos, os quais você, usuário, se responsabiliza integralmente, e que também são fornecidos para a comunidade, após alimentação, e podem ser armazenados pelo SOS-RS.

    -
    +
    Informações que coletamos automaticamente quando você utiliza nossos serviços
    -

    +

    Utilizamos apenas cookies temporários, com ID de sessão do servidor e dados de localização, quando autorizados, para otimizar sua experiência na plataforma. É possível redefinir seu navegador da web @@ -69,79 +69,79 @@ const PrivacyPolicy = () => { não funcionar corretamente, se a sua capacidade de aceitar cookies estiver desabilitada.

    -
    +
    Por que o SOS RS coleta dados
    -

    +

    Usamos as informações coletadas para auxiliar a fornecer, manter e melhorar a logística de suprimentos e disponibilidade em abrigos. Também para:

    -
    +
    Entrar em contato com você
    -

    +

    Se você for um abrigo, usamos as informações que coletamos para interagir diretamente com você.

    -
    +
    Compartilhamento de suas informações
    -

    +

    Podemos compartilhar os dados com a comunidade e outras soluções do mesmo grupo e segmento, para cumprimento do nosso propósito e outros fins que julgarmos pertinente.

    -
    +
    Por motivos legais
    -

    +

    Talvez precisemos compartilhar informações pessoais suas para fora do SOS, se isso for absolutamente necessário para cumprir a lei ou solicitação governamental ou judicial não abusiva.

    -

    +

    Se o SOS RS 🛟 realizar fusão, aquisição ou venda, continuará a garantir a confidencialidade das suas informações pessoais e avisará os afetados antes que as informações sejam transferidas ou submetidas a uma política de privacidade diferente.

    -
    +
    Mantemos suas informações seguras
    -

    +

    Possuímos segurança que protege continuamente suas informações, o que inclui:

      -
    • +
    • 1. A utilização de criptografia para manter os seus dados pessoais privados enquanto estão em trânsito. Seus dados são, portanto, transferidos por uma conexão segura.
    • -
    • +
    • 2. A restrição ao acesso a informações personalíssimas de pessoas físicas por parte de outros usuários e desenvolvedores. E ainda, o rigoroso treinamento e cumprimento de obrigações de confidencialidade para os que possuem acesso total aos dados.
    -
    +
    Exportar e excluir informações
    -

    +

    Nossos desenvolvedores permitem solicitar a exclusão dos seus dados pessoais, enviando um e-mail para contato@sos-rs.com.

    -
    +
    Retenção de suas informações e compliance
    -

    +

    Reteremos suas informações por quanto tempo for necessário para satisfazer as finalidades para as quais elas foram coletadas ou para cumprir com os requerimentos legais aplicáveis.

    -

    +

    Eventualmente os dados serão descartados após o encerramento do propósito do SOS RS 🛟. A nossa política de exclusão garante que os dados fornecidos sejam removidos de forma segura e completa dos @@ -151,26 +151,26 @@ const PrivacyPolicy = () => { cópias são definitivamente excluídas dos nossos sistemas ativos e de backup.

    -
    +
    Você pode, a qualquer momento:
    -

    +

    Atualizar, inativar e corrigir, remover e solicitar acesso às suas informações.

    -
    +
    Dados de contato
    -

    +

    Entre em contato conosco em caso de dúvidas, pelo e-mail{' '} contato@sos-rs.com. Você também pode travar contato com a autoridade local de proteção de dados, se possuir dúvidas sobre seus direitos de acordo com a legislação brasileira.

    -
    +
    Quando esta política se aplica e alterações
    -

    +

    Esta Política de Privacidade se aplica ao SOS RS 🛟. Nos reservamos ao direito de alterar este documento periodicamente, porém não reduziremos seus direitos nesta Política de Privacidade, sem seu diff --git a/src/pages/Shelter/Shelter.tsx b/src/pages/Shelter/Shelter.tsx index 78fea039..a3ab29fa 100644 --- a/src/pages/Shelter/Shelter.tsx +++ b/src/pages/Shelter/Shelter.tsx @@ -93,23 +93,23 @@ const Shelter = () => { if (loading) return ; return ( -

    +
    navigate('/')} > } /> -
    +
    -

    +

    {shelter.name}

    {shelter.verified && } @@ -124,7 +124,7 @@ const Shelter = () => { >
    {shelter.updatedAt && ( -
    - +
    + Atualizado em {format(shelter.updatedAt, 'dd/MM/yyyy HH:mm')}
    @@ -168,7 +168,7 @@ const Shelter = () => {
    )} diff --git a/src/pages/SignIn/SignIn.tsx b/src/pages/SignIn/SignIn.tsx index 9536b816..933d9232 100644 --- a/src/pages/SignIn/SignIn.tsx +++ b/src/pages/SignIn/SignIn.tsx @@ -46,11 +46,11 @@ const SignInComponent = () => { }); return ( -
    -
    +
    +
    -
    -

    +
    +

    SOS Rio Grande do Sul

    @@ -73,7 +73,7 @@ const SignInComponent = () => { diff --git a/src/pages/Supporters/Supporters.tsx b/src/pages/Supporters/Supporters.tsx index a24d9102..32e584f2 100644 --- a/src/pages/Supporters/Supporters.tsx +++ b/src/pages/Supporters/Supporters.tsx @@ -9,24 +9,24 @@ const Supporters = () => { if (loading) return ; return ( -
    +
    } /> -
    -

    +
    +

    Apoiadores do projeto

    -
    +
    {supporters .sort((a, b) => a.createdAt.localeCompare(b.createdAt)) .map((supporter, idx) => ( -
    +
    diff --git a/src/pages/UpdateShelter/UpdateShelter.tsx b/src/pages/UpdateShelter/UpdateShelter.tsx index c1c8f739..449424d3 100644 --- a/src/pages/UpdateShelter/UpdateShelter.tsx +++ b/src/pages/UpdateShelter/UpdateShelter.tsx @@ -102,10 +102,10 @@ const UpdateShelter = () => { if (loading) return ; return ( -
    +
    { } /> -
    +
    Atualização cadastral

    Atualize as informações desejadas.

    -
    +
    { helperText={errors.zipCode} /> {Boolean(isLoadingZipCodeData) && ( - + )} { error={!!errors.neighbourhood} helperText={errors.neighbourhood} /> -
    +
    @@ -180,7 +180,7 @@ const UpdateShelter = () => { })} /> {errors.city && ( -

    {errors.city}

    +

    {errors.city}

    )}
    { />
    -
    +