diff options
Diffstat (limited to 'app/assets/javascripts/issues/show/utils/parse_data.js')
-rw-r--r-- | app/assets/javascripts/issues/show/utils/parse_data.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/assets/javascripts/issues/show/utils/parse_data.js b/app/assets/javascripts/issues/show/utils/parse_data.js new file mode 100644 index 00000000000..f1e6bd2419a --- /dev/null +++ b/app/assets/javascripts/issues/show/utils/parse_data.js @@ -0,0 +1,23 @@ +import * as Sentry from '@sentry/browser'; +import { sanitize } from '~/lib/dompurify'; + +// We currently load + parse the data from the issue app and related merge request +let cachedParsedData; + +export const parseIssuableData = (el) => { + try { + if (cachedParsedData) return cachedParsedData; + + const parsedData = JSON.parse(el.dataset.initial); + parsedData.initialTitleHtml = sanitize(parsedData.initialTitleHtml); + parsedData.initialDescriptionHtml = sanitize(parsedData.initialDescriptionHtml); + + cachedParsedData = parsedData; + + return parsedData; + } catch (e) { + Sentry.captureException(e); + + return {}; + } +}; |