From 96d185bba0bca96450144aad4d78259f4354ab93 Mon Sep 17 00:00:00 2001 From: AldemirLucas Date: Sun, 10 Sep 2023 19:21:52 -0300 Subject: [PATCH 1/2] wip service terms modal --- .../atoms/TemporalCoverageDisplay.js | 2 +- next/content/serviceTermsBDPro.js | 159 ++++++++++++++++++ next/pages/precos.js | 88 ++++++++-- 3 files changed, 236 insertions(+), 13 deletions(-) create mode 100644 next/content/serviceTermsBDPro.js diff --git a/next/components/atoms/TemporalCoverageDisplay.js b/next/components/atoms/TemporalCoverageDisplay.js index 3cef21c4..5716fffa 100644 --- a/next/components/atoms/TemporalCoverageDisplay.js +++ b/next/components/atoms/TemporalCoverageDisplay.js @@ -212,7 +212,7 @@ export function TemporalCoverageBar ({ value }) { const checkoutBdpro = (value) => { if(value === "open") return - window.open("https://buy.stripe.com/8wM01TeVQ3kg0mIeV4", "_blank") + window.open("https://buy.stripe.com/8wM01TeVQ3kg0mIeV4?locale=pt", "_blank") } const BadgeContainer = ({ diff --git a/next/content/serviceTermsBDPro.js b/next/content/serviceTermsBDPro.js new file mode 100644 index 00000000..79e62707 --- /dev/null +++ b/next/content/serviceTermsBDPro.js @@ -0,0 +1,159 @@ + +import { + VStack, + Box +} from "@chakra-ui/react"; +import BodyText from "../components/atoms/BodyText"; +import SectionText from "../components/atoms/SectionText"; + +export default function ServiceTermsBDPro() { + + return ( + + Bem-vindo à BD Pro! + + + 1. Aceitação dos Termos + Ao acessar ou usar os serviços oferecidos pela Base dos dados ("Nós", "Nosso" ou "Nossos"), você concorda em cumprir e aceitar estes Termos de Serviço. Se você não concordar com todos os termos e condições deste acordo você não poderá usar nossos serviços. + + + + 2. Descrição do Serviço + 2.1. Nossos serviços consistem em uma assinatura mensal que concede aos assinantes acesso a diversos dados exclusivos harmonizados e atualizados na plataforma da Base dos Dados. O acesso se dá via pacotes (Python, R e Stata) ou via BigQuery. + + + + 3. Pagamento e Assinaturas + + 3.1. Ao se inscrever em nosso serviço, você concorda em pagar a taxa mensal especificada. O pagamento será processado automaticamente a cada mês, a menos que você cancele sua assinatura antes da data de renovação. + 3.2. Os preços e os métodos de pagamento estão sujeitos a alterações a critério exclusivo da Base dos Dados. As alterações de preço ou de métodos de pagamento serão notificadas com antecedência. + + + + + 4. Cancelamento e Reembolso + 4.1. Você pode cancelar sua assinatura a qualquer momento através das opções disponíveis em sua conta. No entanto, não serão fornecidos reembolsos ou créditos por períodos de assinatura não utilizados. + + + + 5. Uso Responsável + 5.1. Você concorda em usar nossos serviços de forma responsável e em conformidade com todas as leis e regulamentos aplicáveis. + + + + 6. Propriedade Intelectual + 6.1. Todos os direitos de propriedade intelectual relacionados aos dados fornecidos são de propriedade de terceiros e estão sujeitos às suas respectivas políticas de uso. + + + + 7. Privacidade + 7.1. O uso de seus dados pessoais é regido por nossa Política de Privacidade. Ao usar nossos serviços, você concorda com a coleta e o uso de suas informações conforme descrito em nossa Política de Privacidade. + + + + 8. Rescisão + 8.1. Reservamo-nos o direito de encerrar ou suspender sua conta a qualquer momento, por qualquer motivo, sem aviso prévio. + + + + 9. Limitação de Responsabilidade + 9.1. Em nenhuma circunstância seremos responsáveis por danos diretos, indiretos, especiais, incidentais ou consequentes decorrentes do uso ou da incapacidade de usar nossos serviços. + + + + 10. Alterações nos Termos de Serviço + 10.1. Reservamo-nos o direito de modificar estes Termos de Serviço a qualquer momento. As alterações serão efetivas após a publicação das versões atualizadas em nosso site. + + + + 11. Lei Aplicável e Jurisdição + 11.1. Estes Termos de Serviço serão regidos e interpretados de acordo com as leis do Brasil. Qualquer disputa relacionada a estes termos estará sujeita à jurisdição exclusiva dos tribunais do Rio de Janeiro, RJ, Brasil. + + + + 12. Contato + 12.1. Para entrar em contato conosco com perguntas ou preocupações relacionadas a estes Termos de Serviço, por favor, envie um e-mail para suporte.bdpro@basedosdados.org. + + + Ao utilizar nossos serviços, você concorda com todos os termos e condições estabelecidos neste acordo. Por favor, leia estes termos atentamente antes de prosseguir. + + ) +} \ No newline at end of file diff --git a/next/pages/precos.js b/next/pages/precos.js index 75786057..2feec391 100644 --- a/next/pages/precos.js +++ b/next/pages/precos.js @@ -5,6 +5,13 @@ import { Tooltip, Badge, Button, + useDisclosure, + Modal, + ModalOverlay, + ModalContent, + ModalHeader, + ModalBody, + ModalFooter, } from "@chakra-ui/react"; import { useState } from "react"; import Head from "next/head"; @@ -13,7 +20,8 @@ import BigTitle from "../components/atoms/BigTitle" import BodyText from "../components/atoms/BodyText"; import RoundedButton from "../components/atoms/RoundedButton"; import { MainPageTemplate } from "../components/templates/main"; -import { isMobileMod } from "../hooks/useCheckMobile.hook" +import { isMobileMod } from "../hooks/useCheckMobile.hook"; +import ServiceTermsBDPro from "../content/serviceTermsBDPro"; import CheckIcon from "../public/img/icons/checkIcon"; import CrossIcon from "../public/img/icons/crossIcon"; @@ -28,8 +36,10 @@ export default function Price() { personConfig, textResource, resources = [], - button + button, + hasServiceTerms= false }) => { + const { isOpen, onOpen, onClose } = useDisclosure() const [nubmerOfPerson, setNubmerOfPerson] = useState(personConfig.person) const [priceValue, setPriceValue] = useState(personConfig.price) @@ -57,6 +67,22 @@ export default function Price() { padding="40px 24px" textAlign="center" > + + + + Termos de serviço + + + + + + + + + + @@ -267,15 +293,51 @@ export default function Price() { })} - window.open(button.href, button.target || "_blank")} - border={button.color && `1px solid ${button.colorText}`} + - {button.text} - + window.open(button.href, button.target || "_blank")} + border={button.color && `1px solid ${button.colorText}`} + > + {button.text} + + + + {hasServiceTerms && + Sobre os + termos de serviço + . + + } + + ) @@ -366,8 +428,9 @@ export default function Price() { ]} button={{ text: "Iniciar teste grátis", - href: "https://buy.stripe.com/8wM01TeVQ3kg0mIeV4" + href: "https://buy.stripe.com/8wM01TeVQ3kg0mIeV4?locale=pt" }} + hasServiceTerms /> From a0a706f576f81460411e915e811a23ca915b4de0 Mon Sep 17 00:00:00 2001 From: AldemirLucas Date: Mon, 11 Sep 2023 16:58:08 -0300 Subject: [PATCH 2/2] finish service terms modal --- .../atoms/TemporalCoverageDisplay.js | 2 +- next/content/serviceTermsBDPro.js | 36 +++++++++--------- next/pages/precos.js | 37 +++++++++++++++---- 3 files changed, 48 insertions(+), 27 deletions(-) diff --git a/next/components/atoms/TemporalCoverageDisplay.js b/next/components/atoms/TemporalCoverageDisplay.js index 5716fffa..b29f1793 100644 --- a/next/components/atoms/TemporalCoverageDisplay.js +++ b/next/components/atoms/TemporalCoverageDisplay.js @@ -212,7 +212,7 @@ export function TemporalCoverageBar ({ value }) { const checkoutBdpro = (value) => { if(value === "open") return - window.open("https://buy.stripe.com/8wM01TeVQ3kg0mIeV4?locale=pt", "_blank") + window.open("/precos", "_blank") } const BadgeContainer = ({ diff --git a/next/content/serviceTermsBDPro.js b/next/content/serviceTermsBDPro.js index 79e62707..11650d70 100644 --- a/next/content/serviceTermsBDPro.js +++ b/next/content/serviceTermsBDPro.js @@ -16,8 +16,6 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="24px" > - Bem-vindo à BD Pro! - - 1. Aceitação dos Termos - Ao acessar ou usar os serviços oferecidos pela Base dos dados ("Nós", "Nosso" ou "Nossos"), você concorda em cumprir e aceitar estes Termos de Serviço. Se você não concordar com todos os termos e condições deste acordo você não poderá usar nossos serviços. + 1. Aceitação dos Termos + Ao acessar ou usar os serviços oferecidos pela Base dos Dados ("Nós", "Nosso" ou "Nossos"), você concorda em cumprir e aceitar estes Termos de Serviço. Se você não concordar com todos os termos e condições deste acordo, não poderá utilizar nossos serviços. - 2. Descrição do Serviço - 2.1. Nossos serviços consistem em uma assinatura mensal que concede aos assinantes acesso a diversos dados exclusivos harmonizados e atualizados na plataforma da Base dos Dados. O acesso se dá via pacotes (Python, R e Stata) ou via BigQuery. + 2. Descrição do Serviço + 2.1. Nossos serviços consistem em uma assinatura mensal que concede aos seus assinantes o acesso a diversos dados exclusivos, harmonizados e atualizados na plataforma da Base dos Dados. O acesso se dá via os pacotes Python, R ou Stata da Base dos Dados, ou via BigQuery, serviço de armazenamento de dados de baixo custo e totalmente gerenciado do Google para análises. - 3. Pagamento e Assinaturas + 3. Pagamento e Assinaturas - 3.1. Ao se inscrever em nosso serviço, você concorda em pagar a taxa mensal especificada. O pagamento será processado automaticamente a cada mês, a menos que você cancele sua assinatura antes da data de renovação. + 3.1. Ao se inscrever em nossos serviços, você concorda em pagar a taxa mensal especificada. O pagamento será processado automaticamente a cada mês, a menos que você cancele sua assinatura antes da data de renovação, devidamente explicita na contratação do serviço. 3.2. Os preços e os métodos de pagamento estão sujeitos a alterações a critério exclusivo da Base dos Dados. As alterações de preço ou de métodos de pagamento serão notificadas com antecedência. @@ -61,8 +59,8 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="8px" > - 4. Cancelamento e Reembolso - 4.1. Você pode cancelar sua assinatura a qualquer momento através das opções disponíveis em sua conta. No entanto, não serão fornecidos reembolsos ou créditos por períodos de assinatura não utilizados. + 4. Cancelamento e Reembolso + 4.1. Você pode cancelar sua assinatura a qualquer momento através das opções disponíveis em sua conta. No entanto, não serão fornecidos reembolsos ou créditos por períodos em que a assinatura não foi utilizada. - 5. Uso Responsável + 5. Uso Responsável 5.1. Você concorda em usar nossos serviços de forma responsável e em conformidade com todas as leis e regulamentos aplicáveis. @@ -83,7 +81,7 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="8px" > - 6. Propriedade Intelectual + 6. Propriedade Intelectual 6.1. Todos os direitos de propriedade intelectual relacionados aos dados fornecidos são de propriedade de terceiros e estão sujeitos às suas respectivas políticas de uso. @@ -94,7 +92,7 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="8px" > - 7. Privacidade + 7. Privacidade 7.1. O uso de seus dados pessoais é regido por nossa Política de Privacidade. Ao usar nossos serviços, você concorda com a coleta e o uso de suas informações conforme descrito em nossa Política de Privacidade. @@ -105,7 +103,7 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="8px" > - 8. Rescisão + 8. Rescisão 8.1. Reservamo-nos o direito de encerrar ou suspender sua conta a qualquer momento, por qualquer motivo, sem aviso prévio. @@ -116,7 +114,7 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="8px" > - 9. Limitação de Responsabilidade + 9. Limitação de Responsabilidade 9.1. Em nenhuma circunstância seremos responsáveis por danos diretos, indiretos, especiais, incidentais ou consequentes decorrentes do uso ou da incapacidade de usar nossos serviços. @@ -127,7 +125,7 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="8px" > - 10. Alterações nos Termos de Serviço + 10. Alterações nos Termos de Serviço 10.1. Reservamo-nos o direito de modificar estes Termos de Serviço a qualquer momento. As alterações serão efetivas após a publicação das versões atualizadas em nosso site. @@ -138,7 +136,7 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="8px" > - 11. Lei Aplicável e Jurisdição + 11. Lei Aplicável e Jurisdição 11.1. Estes Termos de Serviço serão regidos e interpretados de acordo com as leis do Brasil. Qualquer disputa relacionada a estes termos estará sujeita à jurisdição exclusiva dos tribunais do Rio de Janeiro, RJ, Brasil. @@ -149,11 +147,11 @@ export default function ServiceTermsBDPro() { alignItems="start" gap="8px" > - 12. Contato + 12. Contato 12.1. Para entrar em contato conosco com perguntas ou preocupações relacionadas a estes Termos de Serviço, por favor, envie um e-mail para suporte.bdpro@basedosdados.org. - Ao utilizar nossos serviços, você concorda com todos os termos e condições estabelecidos neste acordo. Por favor, leia estes termos atentamente antes de prosseguir. + Ao utilizar nossos serviços, você concorda com todos os termos e condições estabelecidos neste acordo. Por favor, leia estes termos atentamente antes de prosseguir. ) } \ No newline at end of file diff --git a/next/pages/precos.js b/next/pages/precos.js index 2feec391..d8a090e2 100644 --- a/next/pages/precos.js +++ b/next/pages/precos.js @@ -42,6 +42,7 @@ export default function Price() { const { isOpen, onOpen, onClose } = useDisclosure() const [nubmerOfPerson, setNubmerOfPerson] = useState(personConfig.person) const [priceValue, setPriceValue] = useState(personConfig.price) + const [linkStripe, setLinkStripe] = useState("") const addRemovePersonPrice = (action) => { if(action === "add") { @@ -67,7 +68,11 @@ export default function Price() { padding="40px 24px" textAlign="center" > - + Termos de serviço @@ -76,9 +81,21 @@ export default function Price() { - + {linkStripe === "" ? + + Fechar + + : + { + onClose() + window.open(linkStripe, "_blank") + setLinkStripe("") + }} + borderRadius="12px" + > + Concordar + + } @@ -302,7 +319,10 @@ export default function Price() { width="100%" color={button.colorText || "#FFF"} backgroundColor={button.color || "#42B0FF"} - onClick={() => window.open(button.href, button.target || "_blank")} + onClick={() => { + onOpen() + setLinkStripe(button.href) + }} border={button.color && `1px solid ${button.colorText}`} > {button.text} @@ -325,13 +345,16 @@ export default function Price() { Sobre os + >Leia os { + onOpen() + setLinkStripe("") + }} >termos de serviço .