[Glitch] Use plaintext value for field value tooltips in web UI
Port d185f3ddafc941e280de7efc6d448449ab5ce2c9 to glitch-soc This doesn't change anything for glitch-style fields, but those will go away eventually
This commit is contained in:
		
							parent
							
								
									34142ab29c
								
							
						
					
					
						commit
						f6ec8c4821
					
				@ -3,6 +3,7 @@ import { List as ImmutableList } from 'immutable';
 | 
			
		||||
import IntlMessageFormat from 'intl-messageformat';
 | 
			
		||||
import { fetchRelationships } from './accounts';
 | 
			
		||||
import { defineMessages } from 'react-intl';
 | 
			
		||||
import { unescapeHTML } from 'flavours/glitch/util/html';
 | 
			
		||||
 | 
			
		||||
export const NOTIFICATIONS_UPDATE = 'NOTIFICATIONS_UPDATE';
 | 
			
		||||
 | 
			
		||||
@ -40,13 +41,6 @@ const fetchRelatedRelationships = (dispatch, notifications) => {
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const unescapeHTML = (html) => {
 | 
			
		||||
  const wrapper = document.createElement('div');
 | 
			
		||||
  html = html.replace(/<br \/>|<br>|\n/g, ' ');
 | 
			
		||||
  wrapper.innerHTML = html;
 | 
			
		||||
  return wrapper.textContent;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export function updateNotifications(notification, intlMessages, intlLocale) {
 | 
			
		||||
  return (dispatch, getState) => {
 | 
			
		||||
    const showAlert = getState().getIn(['settings', 'notifications', 'alerts', notification.type], true);
 | 
			
		||||
 | 
			
		||||
@ -111,7 +111,7 @@ export default class Header extends ImmutablePureComponent {
 | 
			
		||||
                {fields.map((pair, i) => (
 | 
			
		||||
                  <dl key={i}>
 | 
			
		||||
                    <dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} />
 | 
			
		||||
                    <dd dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} title={pair.get('value')} />
 | 
			
		||||
                    <dd dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} title={pair.get('value_plain')} />
 | 
			
		||||
                 </dl>
 | 
			
		||||
                ))}
 | 
			
		||||
              </div>
 | 
			
		||||
 | 
			
		||||
@ -57,6 +57,7 @@ import { STORE_HYDRATE } from 'flavours/glitch/actions/store';
 | 
			
		||||
import emojify from 'flavours/glitch/util/emoji';
 | 
			
		||||
import { Map as ImmutableMap, fromJS } from 'immutable';
 | 
			
		||||
import escapeTextContentForBrowser from 'escape-html';
 | 
			
		||||
import { unescapeHTML } from 'flavours/glitch/util/html';
 | 
			
		||||
 | 
			
		||||
const normalizeAccount = (state, account) => {
 | 
			
		||||
  account = { ...account };
 | 
			
		||||
@ -74,6 +75,7 @@ const normalizeAccount = (state, account) => {
 | 
			
		||||
      ...pair,
 | 
			
		||||
      name_emojified: emojify(escapeTextContentForBrowser(pair.name)),
 | 
			
		||||
      value_emojified: emojify(pair.value),
 | 
			
		||||
      value_plain: unescapeHTML(pair.value),
 | 
			
		||||
    }));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								app/javascript/flavours/glitch/util/html.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								app/javascript/flavours/glitch/util/html.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
export const unescapeHTML = (html) => {
 | 
			
		||||
  const wrapper = document.createElement('div');
 | 
			
		||||
  html = html.replace(/<br \/>|<br>|\n/g, ' ');
 | 
			
		||||
  wrapper.innerHTML = html;
 | 
			
		||||
  return wrapper.textContent;
 | 
			
		||||
};
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user