about summary refs log tree commit diff
path: root/app/javascript
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2019-03-06 03:57:46 +0100
committerThibaut Girka <thib@sitedethib.com>2019-03-06 11:42:25 +0100
commit7f32d675b05b012a80c2b34c07d361ec8d596bf3 (patch)
tree8f8af21594e8a8762347002fd9ddb13b5e95aa8a /app/javascript
parent48062329973398fe5b12cadcc389c8602f1bb17f (diff)
Render unicode emoji in polls using emoji pack
Port 4407f07014096bcbaf5a06015a5791984282846d to glitch-soc
Diffstat (limited to 'app/javascript')
-rw-r--r--app/javascript/flavours/glitch/actions/importer/index.js4
-rw-r--r--app/javascript/flavours/glitch/actions/importer/normalizer.js11
-rw-r--r--app/javascript/flavours/glitch/components/poll.js2
3 files changed, 14 insertions, 3 deletions
diff --git a/app/javascript/flavours/glitch/actions/importer/index.js b/app/javascript/flavours/glitch/actions/importer/index.js
index abadee817..e990dc04c 100644
--- a/app/javascript/flavours/glitch/actions/importer/index.js
+++ b/app/javascript/flavours/glitch/actions/importer/index.js
@@ -1,4 +1,4 @@
-import { normalizeAccount, normalizeStatus } from './normalizer';
+import { normalizeAccount, normalizeStatus, normalizePoll } from './normalizer';
 
 export const ACCOUNT_IMPORT  = 'ACCOUNT_IMPORT';
 export const ACCOUNTS_IMPORT = 'ACCOUNTS_IMPORT';
@@ -71,7 +71,7 @@ export function importFetchedStatuses(statuses) {
       }
 
       if (status.poll && status.poll.id) {
-        pushUnique(polls, status.poll);
+        pushUnique(polls, normalizePoll(status.poll));
       }
     }
 
diff --git a/app/javascript/flavours/glitch/actions/importer/normalizer.js b/app/javascript/flavours/glitch/actions/importer/normalizer.js
index f57fb70b4..ccd84364e 100644
--- a/app/javascript/flavours/glitch/actions/importer/normalizer.js
+++ b/app/javascript/flavours/glitch/actions/importer/normalizer.js
@@ -65,3 +65,14 @@ export function normalizeStatus(status, normalOldStatus) {
 
   return normalStatus;
 }
+
+export function normalizePoll(poll) {
+  const normalPoll = { ...poll };
+
+  normalPoll.options = poll.options.map(option => ({
+    ...option,
+    title_emojified: emojify(escapeTextContentForBrowser(option.title)),
+  }));
+
+  return normalPoll;
+}
diff --git a/app/javascript/flavours/glitch/components/poll.js b/app/javascript/flavours/glitch/components/poll.js
index 182491af8..c52445c86 100644
--- a/app/javascript/flavours/glitch/components/poll.js
+++ b/app/javascript/flavours/glitch/components/poll.js
@@ -120,7 +120,7 @@ class Poll extends ImmutablePureComponent {
           {!showResults && <span className={classNames('poll__input', { checkbox: poll.get('multiple'), active })} />}
           {showResults && <span className='poll__number'>{Math.round(percent)}%</span>}
 
-          {option.get('title')}
+          <span dangerouslySetInnerHTML={{ __html: option.get('title_emojified') }} />
         </label>
       </li>
     );