{"version":3,"file":"index.mjs","sources":["../../admin/src/pluginId.ts","../../admin/src/utils/getTranslation.ts","../../admin/src/components/Initializer.tsx","../../admin/src/components/TelegramSendAction/index.tsx","../../admin/src/index.ts"],"sourcesContent":["export const PLUGIN_ID = 'telegram-bot';\n","import { PLUGIN_ID } from '../pluginId';\n\nconst getTranslation = (id: string) => `${PLUGIN_ID}.${id}`;\n\nexport { getTranslation };\n","import { useEffect, useRef } from 'react';\n\nimport { PLUGIN_ID } from '../pluginId';\n\ntype InitializerProps = {\n  setPlugin: (id: string) => void;\n};\n\nconst Initializer = ({ setPlugin }: InitializerProps) => {\n  const ref = useRef(setPlugin);\n\n  useEffect(() => {\n    ref.current(PLUGIN_ID);\n  }, []);\n\n  return null;\n};\n\nexport { Initializer };\n","import React, {useState, useEffect, useCallback} from \"react\";\nimport {\n  Box,\n  Button,\n  Divider,\n  Flex,\n  Typography,\n} from '@strapi/design-system';\nimport {getFetchClient, useNotification} from \"@strapi/strapi/admin\";\nimport {useParams} from \"react-router-dom\";\nimport {TriggerButtonInfo} from \"../../../../server/src/types\";\n\nconst Index = ({}) => {\n  const {toggleNotification} = useNotification();\n  const {slug, id: documentId,} = useParams<{ slug: string; id: string }>();\n  const {get, post} = getFetchClient();\n\n  const [loading, setLoading] = useState(false);\n  const [triggerButtons, setTriggerButtons] = useState<TriggerButtonInfo[]>([]);\n\n  const showNotification = (message: string, type: 'info' | 'warning' | 'danger' | 'success' = 'warning') => {\n    toggleNotification({\n      // required\n      type,\n      // required\n      message: message,\n    });\n  }\n\n  useEffect(() => {\n    (async () => {\n      const apiID = slug;\n      if (!apiID) {\n        return;\n      }\n      try {\n        const response = await get(`/telegram-bot/telegram-action/get-buttons`, {\n          params: {apiID},\n          validateStatus: (status: number) => status === 200,\n        });\n        const {enabled, buttons} = response.data;\n\n        setTriggerButtons(enabled ? buttons : [])\n      } catch (e) {\n        console.error(e);\n      }\n    })();\n  }, [slug]);\n\n  const handleClick = useCallback((buttonID: string) => async () => {\n      const id = documentId;\n      if (id) {\n        setLoading(true);\n        const response = await post(`/telegram-bot/telegram-action/trigger`, {buttonID: buttonID, id}, {\n          headers: {\n            'Content-Type': 'application/json',\n          }\n        });\n        setLoading(false);\n        const {type, message} = response.data;\n        showNotification(message, type);\n      } else showNotification('Please save the data before send notifications', 'warning');\n    }\n    , []);\n\n  if (triggerButtons.length === 0) {\n    return <></>;\n  }\n\n  return (\n    <>\n      <Box\n        as=\"aside\"\n        aria-labelledby=\"telegram-additional-information\"\n        background=\"neutral0\"\n        borderColor=\"neutral150\"\n        hasRadius\n        paddingBottom={4}\n        paddingLeft={4}\n        paddingRight={4}\n        paddingTop={6}\n        shadow=\"tableShadow\"\n         width=\"100%\"\n      >\n        <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n          <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n            <Typography variant=\"sigma\" textColor=\"neutral600\" id=\"telegram-additional-information\">\n              Telegram Action\n            </Typography>\n\n            <Box>\n              <Divider/>\n            </Box>\n          </Flex>\n          <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n            <Flex direction=\"column\" alignItems=\"stretch\" gap={2} as=\"dl\">\n            </Flex>\n          </Flex>\n\n\n          {triggerButtons.map(({buttonID, label, variant}) => (\n            <Button\n              variant={variant || 'success-light'}\n              key={buttonID} loading={loading}\n              onClick={handleClick(buttonID)}>\n              {label}\n            </Button>\n          ))}\n        </Flex>\n      </Box>\n    </>\n  )\n}\n\nexport default Index;\n","import { getTranslation } from './utils/getTranslation';\nimport { PLUGIN_ID } from './pluginId';\nimport { Initializer } from './components/Initializer';\nimport TelegramSendAction from \"./components/TelegramSendAction\";\n\nexport default {\n  register(app: any) {\n    // app.addMenuLink({\n    //   to: `plugins/${PLUGIN_ID}`,\n    //   icon: PluginIcon,\n    //   intlLabel: {\n    //     id: `${PLUGIN_ID}.plugin.name`,\n    //     defaultMessage: PLUGIN_ID,\n    //   },\n    //   Component: async () => {\n    //     const { App } = await import('./pages/App');\n    //\n    //     return App;\n    //   },\n    // });\n\n    app.registerPlugin({\n      id: PLUGIN_ID,\n      initializer: Initializer,\n      isReady: false,\n      name: PLUGIN_ID,\n    });\n\n    app.getPlugin('content-manager').injectComponent('editView', 'right-links', {\n      name: 'trigger-telegram-action',\n      Component: TelegramSendAction,\n    });\n  },\n\n  async registerTrads(app: any) {\n    const { locales } = app;\n\n    const importedTranslations = await Promise.all(\n      (locales as string[]).map((locale) => {\n        return import(`./translations/${locale}.json`)\n          .then(({ default: data }) => {\n            return {\n              data: getTranslation(data),\n              locale,\n            };\n          })\n          .catch(() => {\n            return {\n              data: {},\n              locale,\n            };\n          });\n      })\n    );\n\n    return importedTranslations;\n  },\n};\n"],"names":["TelegramSendAction"],"mappings":"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"}