@drodil/backstage-plugin-qeta-react 3.2.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/components/AnswerCard/AnswerCard.esm.js +6 -1
  2. package/dist/components/AnswerCard/AnswerCard.esm.js.map +1 -1
  3. package/dist/components/AnswerForm/AnswerForm.esm.js +20 -8
  4. package/dist/components/AnswerForm/AnswerForm.esm.js.map +1 -1
  5. package/dist/components/AnswersContainer/AnswerList.esm.js +16 -38
  6. package/dist/components/AnswersContainer/AnswerList.esm.js.map +1 -1
  7. package/dist/components/AnswersContainer/AnswerListItem.esm.js +6 -1
  8. package/dist/components/AnswersContainer/AnswerListItem.esm.js.map +1 -1
  9. package/dist/components/AnswersContainer/AnswersContainer.esm.js +5 -1
  10. package/dist/components/AnswersContainer/AnswersContainer.esm.js.map +1 -1
  11. package/dist/components/ArticleContent/ArticleButtons.esm.js +6 -1
  12. package/dist/components/ArticleContent/ArticleButtons.esm.js.map +1 -1
  13. package/dist/components/ArticleContent/ArticleContent.esm.js +7 -1
  14. package/dist/components/ArticleContent/ArticleContent.esm.js.map +1 -1
  15. package/dist/components/AuthorBox/AuthorBox.esm.js +7 -1
  16. package/dist/components/AuthorBox/AuthorBox.esm.js.map +1 -1
  17. package/dist/components/Buttons/AddToCollectionButton.esm.js +4 -1
  18. package/dist/components/Buttons/AddToCollectionButton.esm.js.map +1 -1
  19. package/dist/components/Buttons/AskQuestionButton.esm.js +5 -1
  20. package/dist/components/Buttons/AskQuestionButton.esm.js.map +1 -1
  21. package/dist/components/Buttons/BackToArticlesButton.esm.js +5 -1
  22. package/dist/components/Buttons/BackToArticlesButton.esm.js.map +1 -1
  23. package/dist/components/Buttons/BackToCollectionsButton.esm.js +5 -1
  24. package/dist/components/Buttons/BackToCollectionsButton.esm.js.map +1 -1
  25. package/dist/components/Buttons/BackToQuestionsButton.esm.js +5 -1
  26. package/dist/components/Buttons/BackToQuestionsButton.esm.js.map +1 -1
  27. package/dist/components/Buttons/CollectionFollowButton.esm.js +40 -0
  28. package/dist/components/Buttons/CollectionFollowButton.esm.js.map +1 -0
  29. package/dist/components/Buttons/CreateCollectionButton.esm.js +5 -1
  30. package/dist/components/Buttons/CreateCollectionButton.esm.js.map +1 -1
  31. package/dist/components/Buttons/EntityFollowButton.esm.js +7 -1
  32. package/dist/components/Buttons/EntityFollowButton.esm.js.map +1 -1
  33. package/dist/components/Buttons/FavoriteButton.esm.js +4 -1
  34. package/dist/components/Buttons/FavoriteButton.esm.js.map +1 -1
  35. package/dist/components/Buttons/LinkButton.esm.js +6 -1
  36. package/dist/components/Buttons/LinkButton.esm.js.map +1 -1
  37. package/dist/components/Buttons/TagFollowButton.esm.js +7 -1
  38. package/dist/components/Buttons/TagFollowButton.esm.js.map +1 -1
  39. package/dist/components/Buttons/UserFollowButton.esm.js +40 -0
  40. package/dist/components/Buttons/UserFollowButton.esm.js.map +1 -0
  41. package/dist/components/Buttons/VoteButtons.esm.js +1 -1
  42. package/dist/components/Buttons/VoteButtons.esm.js.map +1 -1
  43. package/dist/components/Buttons/WriteArticleButton.esm.js +5 -1
  44. package/dist/components/Buttons/WriteArticleButton.esm.js.map +1 -1
  45. package/dist/components/CollectionCard/CollectionCard.esm.js +7 -3
  46. package/dist/components/CollectionCard/CollectionCard.esm.js.map +1 -1
  47. package/dist/components/CollectionForm/CollectionForm.esm.js +20 -14
  48. package/dist/components/CollectionForm/CollectionForm.esm.js.map +1 -1
  49. package/dist/components/CollectionsGrid/CollectionsGrid.esm.js +57 -14
  50. package/dist/components/CollectionsGrid/CollectionsGrid.esm.js.map +1 -1
  51. package/dist/components/CollectionsGrid/CollectionsGridContent.esm.js +13 -27
  52. package/dist/components/CollectionsGrid/CollectionsGridContent.esm.js.map +1 -1
  53. package/dist/components/CollectionsGrid/CollectionsGridItem.esm.js +28 -19
  54. package/dist/components/CollectionsGrid/CollectionsGridItem.esm.js.map +1 -1
  55. package/dist/components/CommentSection/CommentList.esm.js +4 -1
  56. package/dist/components/CommentSection/CommentList.esm.js.map +1 -1
  57. package/dist/components/CommentSection/CommentSection.esm.js +4 -1
  58. package/dist/components/CommentSection/CommentSection.esm.js.map +1 -1
  59. package/dist/components/DeleteModal/DeleteModal.esm.js +5 -1
  60. package/dist/components/DeleteModal/DeleteModal.esm.js.map +1 -1
  61. package/dist/components/EntitiesGrid/EntitiesGrid.esm.js +61 -22
  62. package/dist/components/EntitiesGrid/EntitiesGrid.esm.js.map +1 -1
  63. package/dist/components/EntitiesGrid/EntitiesGridContent.esm.js +31 -0
  64. package/dist/components/EntitiesGrid/EntitiesGridContent.esm.js.map +1 -0
  65. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js +9 -4
  66. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js.map +1 -1
  67. package/dist/components/FilterPanel/DateRangeFilter.esm.js +6 -1
  68. package/dist/components/FilterPanel/DateRangeFilter.esm.js.map +1 -1
  69. package/dist/components/FilterPanel/FilterPanel.esm.js +9 -5
  70. package/dist/components/FilterPanel/FilterPanel.esm.js.map +1 -1
  71. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js +49 -0
  72. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js.map +1 -0
  73. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js +7 -1
  74. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js.map +1 -1
  75. package/dist/components/FollowedLists/FollowedTagsList.esm.js +7 -1
  76. package/dist/components/FollowedLists/FollowedTagsList.esm.js.map +1 -1
  77. package/dist/components/HeaderImageInput/HeaderImageInput.esm.js +9 -3
  78. package/dist/components/HeaderImageInput/HeaderImageInput.esm.js.map +1 -1
  79. package/dist/components/HomePageCards/ImpactCard.esm.js +6 -1
  80. package/dist/components/HomePageCards/ImpactCard.esm.js.map +1 -1
  81. package/dist/components/HomePageCards/PostsCard.esm.js +8 -3
  82. package/dist/components/HomePageCards/PostsCard.esm.js.map +1 -1
  83. package/dist/components/LeftMenu/LeftMenu.esm.js +11 -3
  84. package/dist/components/LeftMenu/LeftMenu.esm.js.map +1 -1
  85. package/dist/components/Links/Links.esm.js +5 -1
  86. package/dist/components/Links/Links.esm.js.map +1 -1
  87. package/dist/components/MarkdownEditor/MarkdownEditor.esm.js +8 -2
  88. package/dist/components/MarkdownEditor/MarkdownEditor.esm.js.map +1 -1
  89. package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js +1 -1
  90. package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js.map +1 -1
  91. package/dist/components/PostAnonymouslyCheckbox/PostAnonymouslyCheckbox.esm.js +6 -1
  92. package/dist/components/PostAnonymouslyCheckbox/PostAnonymouslyCheckbox.esm.js.map +1 -1
  93. package/dist/components/PostForm/EntitiesInput.esm.js +5 -1
  94. package/dist/components/PostForm/EntitiesInput.esm.js.map +1 -1
  95. package/dist/components/PostForm/PostForm.esm.js +56 -17
  96. package/dist/components/PostForm/PostForm.esm.js.map +1 -1
  97. package/dist/components/PostForm/TagInput.esm.js +5 -2
  98. package/dist/components/PostForm/TagInput.esm.js.map +1 -1
  99. package/dist/components/PostHighlightList/PostHighlightList.esm.js +5 -1
  100. package/dist/components/PostHighlightList/PostHighlightList.esm.js.map +1 -1
  101. package/dist/components/PostsContainer/NoPostsCard.esm.js +6 -1
  102. package/dist/components/PostsContainer/NoPostsCard.esm.js.map +1 -1
  103. package/dist/components/PostsContainer/PostList.esm.js +16 -38
  104. package/dist/components/PostsContainer/PostList.esm.js.map +1 -1
  105. package/dist/components/PostsContainer/PostListItem.esm.js +6 -1
  106. package/dist/components/PostsContainer/PostListItem.esm.js.map +1 -1
  107. package/dist/components/PostsContainer/PostsContainer.esm.js +8 -2
  108. package/dist/components/PostsContainer/PostsContainer.esm.js.map +1 -1
  109. package/dist/components/PostsGrid/PostsGrid.esm.js +13 -3
  110. package/dist/components/PostsGrid/PostsGrid.esm.js.map +1 -1
  111. package/dist/components/PostsGrid/PostsGridContent.esm.js +23 -12
  112. package/dist/components/PostsGrid/PostsGridContent.esm.js.map +1 -1
  113. package/dist/components/PostsGrid/PostsGridItem.esm.js +6 -1
  114. package/dist/components/PostsGrid/PostsGridItem.esm.js.map +1 -1
  115. package/dist/components/QetaPagination/QetaPagination.esm.js +55 -0
  116. package/dist/components/QetaPagination/QetaPagination.esm.js.map +1 -0
  117. package/dist/components/QuestionCard/QuestionCard.esm.js +12 -4
  118. package/dist/components/QuestionCard/QuestionCard.esm.js.map +1 -1
  119. package/dist/components/QuestionsTable/QuestionsTable.esm.js +6 -1
  120. package/dist/components/QuestionsTable/QuestionsTable.esm.js.map +1 -1
  121. package/dist/components/SelectTemplateList/SelectTemplateList.esm.js +48 -0
  122. package/dist/components/SelectTemplateList/SelectTemplateList.esm.js.map +1 -0
  123. package/dist/components/StatsChart/StatsChart.esm.js +37 -13
  124. package/dist/components/StatsChart/StatsChart.esm.js.map +1 -1
  125. package/dist/components/StatsChart/util.esm.js +9 -0
  126. package/dist/components/StatsChart/util.esm.js.map +1 -0
  127. package/dist/components/SummaryStatsGrid/SummaryStatsGrid.esm.js +25 -1
  128. package/dist/components/SummaryStatsGrid/SummaryStatsGrid.esm.js.map +1 -1
  129. package/dist/components/TagsAndEntities/CollectionChip.esm.js +85 -0
  130. package/dist/components/TagsAndEntities/CollectionChip.esm.js.map +1 -0
  131. package/dist/components/TagsAndEntities/EntityChip.esm.js +5 -1
  132. package/dist/components/TagsAndEntities/EntityChip.esm.js.map +1 -1
  133. package/dist/components/TagsAndEntities/TagChip.esm.js +5 -1
  134. package/dist/components/TagsAndEntities/TagChip.esm.js.map +1 -1
  135. package/dist/components/TagsAndEntities/TagsAndEntities.esm.js +3 -0
  136. package/dist/components/TagsAndEntities/TagsAndEntities.esm.js.map +1 -1
  137. package/dist/components/TagsGrid/EditTagModal.esm.js +4 -1
  138. package/dist/components/TagsGrid/EditTagModal.esm.js.map +1 -1
  139. package/dist/components/TagsGrid/TagGridItem.esm.js +9 -4
  140. package/dist/components/TagsGrid/TagGridItem.esm.js.map +1 -1
  141. package/dist/components/TagsGrid/TagsGrid.esm.js +64 -22
  142. package/dist/components/TagsGrid/TagsGrid.esm.js.map +1 -1
  143. package/dist/components/TagsGrid/TagsGridContent.esm.js +31 -0
  144. package/dist/components/TagsGrid/TagsGridContent.esm.js.map +1 -0
  145. package/dist/components/TemplateList/TemplateForm.esm.js +207 -0
  146. package/dist/components/TemplateList/TemplateForm.esm.js.map +1 -0
  147. package/dist/components/TemplateList/TemplateList.esm.js +105 -0
  148. package/dist/components/TemplateList/TemplateList.esm.js.map +1 -0
  149. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js +6 -1
  150. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js.map +1 -1
  151. package/dist/components/UsersGrid/UsersGrid.esm.js +49 -19
  152. package/dist/components/UsersGrid/UsersGrid.esm.js.map +1 -1
  153. package/dist/components/UsersGrid/UsersGridContent.esm.js +31 -0
  154. package/dist/components/UsersGrid/UsersGridContent.esm.js.map +1 -0
  155. package/dist/components/UsersGrid/UsersGridItem.esm.js +31 -3
  156. package/dist/components/UsersGrid/UsersGridItem.esm.js.map +1 -1
  157. package/dist/hooks/useBasePath.esm.js +12 -0
  158. package/dist/hooks/useBasePath.esm.js.map +1 -0
  159. package/dist/hooks/useBaseUrl.esm.js +13 -0
  160. package/dist/hooks/useBaseUrl.esm.js.map +1 -0
  161. package/dist/hooks/useCollectionsFollow.esm.js +59 -0
  162. package/dist/hooks/useCollectionsFollow.esm.js.map +1 -0
  163. package/dist/hooks/useEntityAuthor.esm.js +90 -0
  164. package/dist/hooks/useEntityAuthor.esm.js.map +1 -0
  165. package/dist/hooks/useEntityFollow.esm.js +49 -0
  166. package/dist/hooks/useEntityFollow.esm.js.map +1 -0
  167. package/dist/hooks/useEntityQueryParameter.esm.js +14 -0
  168. package/dist/hooks/useEntityQueryParameter.esm.js.map +1 -0
  169. package/dist/hooks/useFormStyles.esm.js +26 -0
  170. package/dist/hooks/useFormStyles.esm.js.map +1 -0
  171. package/dist/hooks/useIdentityApi.esm.js +12 -0
  172. package/dist/hooks/useIdentityApi.esm.js.map +1 -0
  173. package/dist/hooks/useIsDarkTheme.esm.js +12 -0
  174. package/dist/hooks/useIsDarkTheme.esm.js.map +1 -0
  175. package/dist/hooks/useIsModerator.esm.js +23 -0
  176. package/dist/hooks/useIsModerator.esm.js.map +1 -0
  177. package/dist/hooks/usePaginatedPosts.esm.js +176 -0
  178. package/dist/hooks/usePaginatedPosts.esm.js.map +1 -0
  179. package/dist/hooks/useQetaApi.esm.js +13 -0
  180. package/dist/hooks/useQetaApi.esm.js.map +1 -0
  181. package/dist/hooks/useStyles.esm.js +141 -0
  182. package/dist/hooks/useStyles.esm.js.map +1 -0
  183. package/dist/hooks/useTagsFollow.esm.js +53 -0
  184. package/dist/hooks/useTagsFollow.esm.js.map +1 -0
  185. package/dist/hooks/useTranslation.esm.js +9 -0
  186. package/dist/hooks/useTranslation.esm.js.map +1 -0
  187. package/dist/hooks/useUserFollow.esm.js +53 -0
  188. package/dist/hooks/useUserFollow.esm.js.map +1 -0
  189. package/dist/hooks/useVoting.esm.js +110 -0
  190. package/dist/hooks/useVoting.esm.js.map +1 -0
  191. package/dist/index.d.ts +406 -303
  192. package/dist/index.esm.js +15 -2
  193. package/dist/index.esm.js.map +1 -1
  194. package/dist/routes.esm.js +6 -1
  195. package/dist/routes.esm.js.map +1 -1
  196. package/dist/translation.esm.js +68 -4
  197. package/dist/translation.esm.js.map +1 -1
  198. package/dist/utils/utils.esm.js +3 -2
  199. package/dist/utils/utils.esm.js.map +1 -1
  200. package/package.json +6 -3
  201. package/dist/utils/hooks.esm.js +0 -655
  202. package/dist/utils/hooks.esm.js.map +0 -1
@@ -0,0 +1,110 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { useAnalytics, useApi } from '@backstage/core-plugin-api';
3
+ import { qetaApiRef } from '../api.esm.js';
4
+ import { useTranslation } from './useTranslation.esm.js';
5
+ import { useSignal } from '@backstage/plugin-signals-react';
6
+
7
+ function useVoting(resp) {
8
+ const [entity, setEntity] = React.useState(
9
+ resp
10
+ );
11
+ const [ownVote, setOwnVote] = React.useState(entity.ownVote ?? 0);
12
+ const [correctAnswer, setCorrectAnswer] = useState(
13
+ "postId" in entity ? entity.correct : false
14
+ );
15
+ const [score, setScore] = useState(entity.score);
16
+ const analytics = useAnalytics();
17
+ const qetaApi = useApi(qetaApiRef);
18
+ const { t } = useTranslation();
19
+ const isQuestion = "title" in entity;
20
+ const own = entity.own ?? false;
21
+ const { lastSignal } = useSignal(
22
+ isQuestion ? `qeta:question_${entity.id}` : `qeta:answer_${entity.id}`
23
+ );
24
+ useEffect(() => {
25
+ if (entity) {
26
+ setScore(entity.score);
27
+ }
28
+ }, [entity]);
29
+ useEffect(() => {
30
+ if (lastSignal?.type === "post_stats" || lastSignal?.type === "answer_stats") {
31
+ setCorrectAnswer(lastSignal.correctAnswer);
32
+ setScore(lastSignal.score);
33
+ }
34
+ }, [lastSignal]);
35
+ const voteUp = () => {
36
+ if (isQuestion) {
37
+ qetaApi.votePostUp(entity.id).then((response) => {
38
+ setOwnVote(1);
39
+ analytics.captureEvent("vote", "question", { value: 1 });
40
+ setEntity(response);
41
+ });
42
+ } else if ("postId" in entity) {
43
+ qetaApi.voteAnswerUp(entity.postId, entity.id).then((response) => {
44
+ setOwnVote(1);
45
+ analytics.captureEvent("vote", "answer", { value: 1 });
46
+ setEntity(response);
47
+ });
48
+ }
49
+ };
50
+ const voteDown = () => {
51
+ if (isQuestion) {
52
+ qetaApi.votePostDown(entity.id).then((response) => {
53
+ setOwnVote(-1);
54
+ analytics.captureEvent("vote", "question", { value: -1 });
55
+ setEntity(response);
56
+ });
57
+ } else if ("postId" in entity) {
58
+ qetaApi.voteAnswerDown(entity.postId, entity.id).then((response) => {
59
+ setOwnVote(-1);
60
+ analytics.captureEvent("vote", "answer", { value: -1 });
61
+ setEntity(response);
62
+ });
63
+ }
64
+ };
65
+ let correctTooltip = correctAnswer ? t("voteButtons.answer.markIncorrect") : t("voteButtons.answer.markCorrect");
66
+ if (!entity?.own) {
67
+ correctTooltip = correctAnswer ? t("voteButtons.answer.marked") : "";
68
+ }
69
+ let voteUpTooltip = isQuestion ? t("voteButtons.question.good") : t("voteButtons.answer.good");
70
+ if (own) {
71
+ voteUpTooltip = isQuestion ? t("voteButtons.question.own") : t("voteButtons.answer.own");
72
+ }
73
+ let voteDownTooltip = isQuestion ? t("voteButtons.question.bad") : t("voteButtons.answer.bad");
74
+ if (own) {
75
+ voteDownTooltip = voteUpTooltip;
76
+ }
77
+ const toggleCorrectAnswer = () => {
78
+ if (!("postId" in entity)) {
79
+ return;
80
+ }
81
+ if (correctAnswer) {
82
+ qetaApi.markAnswerIncorrect(entity.postId, entity.id).then((response) => {
83
+ if (response) {
84
+ setCorrectAnswer(false);
85
+ }
86
+ });
87
+ } else {
88
+ qetaApi.markAnswerCorrect(entity.postId, entity.id).then((response) => {
89
+ if (response) {
90
+ setCorrectAnswer(true);
91
+ }
92
+ });
93
+ }
94
+ };
95
+ return {
96
+ entity,
97
+ ownVote,
98
+ correctAnswer,
99
+ score,
100
+ voteUp,
101
+ voteDown,
102
+ toggleCorrectAnswer,
103
+ voteUpTooltip,
104
+ voteDownTooltip,
105
+ correctTooltip
106
+ };
107
+ }
108
+
109
+ export { useVoting };
110
+ //# sourceMappingURL=useVoting.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVoting.esm.js","sources":["../../src/hooks/useVoting.ts"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useAnalytics, useApi } from '@backstage/core-plugin-api';\nimport { qetaApiRef } from '../api';\nimport { useTranslation } from './useTranslation';\nimport { useSignal } from '@backstage/plugin-signals-react';\nimport {\n AnswerResponse,\n PostResponse,\n QetaSignal,\n} from '@drodil/backstage-plugin-qeta-common';\n\nexport function useVoting(resp: PostResponse | AnswerResponse) {\n const [entity, setEntity] = React.useState<PostResponse | AnswerResponse>(\n resp,\n );\n const [ownVote, setOwnVote] = React.useState(entity.ownVote ?? 0);\n const [correctAnswer, setCorrectAnswer] = useState(\n 'postId' in entity ? entity.correct : false,\n );\n const [score, setScore] = useState(entity.score);\n const analytics = useAnalytics();\n const qetaApi = useApi(qetaApiRef);\n const { t } = useTranslation();\n\n const isQuestion = 'title' in entity;\n const own = entity.own ?? false;\n\n const { lastSignal } = useSignal<QetaSignal>(\n isQuestion ? `qeta:question_${entity.id}` : `qeta:answer_${entity.id}`,\n );\n\n useEffect(() => {\n if (entity) {\n setScore(entity.score);\n }\n }, [entity]);\n\n useEffect(() => {\n if (\n lastSignal?.type === 'post_stats' ||\n lastSignal?.type === 'answer_stats'\n ) {\n setCorrectAnswer(lastSignal.correctAnswer);\n setScore(lastSignal.score);\n }\n }, [lastSignal]);\n\n const voteUp = () => {\n if (isQuestion) {\n qetaApi.votePostUp(entity.id).then(response => {\n setOwnVote(1);\n analytics.captureEvent('vote', 'question', { value: 1 });\n setEntity(response);\n });\n } else if ('postId' in entity) {\n qetaApi.voteAnswerUp(entity.postId, entity.id).then(response => {\n setOwnVote(1);\n analytics.captureEvent('vote', 'answer', { value: 1 });\n setEntity(response);\n });\n }\n };\n\n const voteDown = () => {\n if (isQuestion) {\n qetaApi.votePostDown(entity.id).then(response => {\n setOwnVote(-1);\n analytics.captureEvent('vote', 'question', { value: -1 });\n setEntity(response);\n });\n } else if ('postId' in entity) {\n qetaApi.voteAnswerDown(entity.postId, entity.id).then(response => {\n setOwnVote(-1);\n analytics.captureEvent('vote', 'answer', { value: -1 });\n setEntity(response);\n });\n }\n };\n\n let correctTooltip: string = correctAnswer\n ? t('voteButtons.answer.markIncorrect')\n : t('voteButtons.answer.markCorrect');\n if (!entity?.own) {\n correctTooltip = correctAnswer ? t('voteButtons.answer.marked') : '';\n }\n\n let voteUpTooltip: string = isQuestion\n ? t('voteButtons.question.good')\n : t('voteButtons.answer.good');\n if (own) {\n voteUpTooltip = isQuestion\n ? t('voteButtons.question.own')\n : t('voteButtons.answer.own');\n }\n\n let voteDownTooltip: string = isQuestion\n ? t('voteButtons.question.bad')\n : t('voteButtons.answer.bad');\n if (own) {\n voteDownTooltip = voteUpTooltip;\n }\n\n const toggleCorrectAnswer = () => {\n if (!('postId' in entity)) {\n return;\n }\n if (correctAnswer) {\n qetaApi.markAnswerIncorrect(entity.postId, entity.id).then(response => {\n if (response) {\n setCorrectAnswer(false);\n }\n });\n } else {\n qetaApi.markAnswerCorrect(entity.postId, entity.id).then(response => {\n if (response) {\n setCorrectAnswer(true);\n }\n });\n }\n };\n\n return {\n entity,\n ownVote,\n correctAnswer,\n score,\n voteUp,\n voteDown,\n toggleCorrectAnswer,\n voteUpTooltip,\n voteDownTooltip,\n correctTooltip,\n };\n}\n"],"names":[],"mappings":"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"}