From 738c819cce0043b9989239b183183f2ef44b587f Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Sun, 2 Nov 2025 18:29:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A7=D0=B5=D0=BA=20=D0=BE=D1=82=D0=BA=D1=80?= =?UTF-8?q?=D1=8B=D1=82=D0=B8=D1=8F=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=B0=20=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=86=D0=B5=20=D1=81=D0=BA=D0=B0=D1=87=D0=B8=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/docusaurus/src/pages/download.js | 42 +++++++++++++++------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/docs/docusaurus/src/pages/download.js b/docs/docusaurus/src/pages/download.js index 289f86c8fd..e793219cfa 100644 --- a/docs/docusaurus/src/pages/download.js +++ b/docs/docusaurus/src/pages/download.js @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState, useEffect, useRef } from 'react'; import Layout from '@theme/Layout'; import Link from '@docusaurus/Link'; import Heading from '@theme/Heading'; @@ -8,9 +8,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; const DownloadPage = () => { const [showThankYou, setShowThankYou] = useState(false); const [isModalVisible, setIsModalVisible] = useState(false); - - const githubLogo = useBaseUrl('/img/github-logo.svg'); - const boostyLogo = useBaseUrl('/img/boosty-logo.svg'); + const thankYouClosed = useRef(false); // флаг: пользователь закрыл окно const downloadItems = [ { @@ -94,24 +92,39 @@ const DownloadPage = () => { }, ]; - const handleDownload = (filename) => { + const triggerDownload = (filename) => { const cleanFilename = filename.trim(); const url = `https://github.com/Bayselonarrend/OpenIntegrations/releases/latest/download/${cleanFilename}`; - const link = document.createElement('a'); link.href = url; link.setAttribute('target', '_self'); document.body.appendChild(link); link.click(); document.body.removeChild(link); + }; + + const handleDownload = (filename) => { + if (thankYouClosed.current) { + // Просто скачиваем без модалки + triggerDownload(filename); + return; + } + + triggerDownload(filename); setShowThankYou(true); - // Через кадр — включаем видимость → запускается transition + // Задержка перед анимацией (чтобы пользователь успел увидеть начало скачивания) setTimeout(() => { setIsModalVisible(true); }, 600); }; + const handleCloseThankYou = () => { + setShowThankYou(false); + setIsModalVisible(false); + thankYouClosed.current = true; // запоминаем выбор на время сессии + }; + return (
@@ -180,10 +193,7 @@ const DownloadPage = () => { {showThankYou && (
{ - setShowThankYou(false); - setIsModalVisible(false); - }} + onClick={handleCloseThankYou} >
e.stopPropagation()}>
@@ -239,7 +249,7 @@ const DownloadPage = () => { />

- Пожертвования на Boosty — единственный источника дохода проекта. Такой вид монетизации позволяет нам развивать проект дальше, при этом не пряча функционал за платными версиями и не засоряя документацию рекламными блоками + Пожертвования на Boosty — единственный источник дохода проекта. Такой вид монетизации позволяет нам развивать проект дальше, при этом не пряча функционал за платными версиями и не засоряя документацию рекламными блоками.

{
-