You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
/* global Whisper, loadImage */
 | 
						|
 | 
						|
// eslint-disable-next-line func-names
 | 
						|
(function() {
 | 
						|
  'use strict';
 | 
						|
 | 
						|
  window.Whisper = window.Whisper || {};
 | 
						|
 | 
						|
  /*
 | 
						|
   * Render an avatar identicon to an svg for use in a notification.
 | 
						|
   */
 | 
						|
  Whisper.IdenticonSVGView = Whisper.View.extend({
 | 
						|
    templateName: 'identicon-svg',
 | 
						|
    initialize(options) {
 | 
						|
      this.render_attributes = options;
 | 
						|
      this.render_attributes.color = COLORS[this.render_attributes.color];
 | 
						|
    },
 | 
						|
    getSVGUrl() {
 | 
						|
      const html = this.render().$el.html();
 | 
						|
      const svg = new Blob([html], { type: 'image/svg+xml;charset=utf-8' });
 | 
						|
      return URL.createObjectURL(svg);
 | 
						|
    },
 | 
						|
    getDataUrl() {
 | 
						|
      const svgurl = this.getSVGUrl();
 | 
						|
      return new Promise(resolve => {
 | 
						|
        const img = document.createElement('img');
 | 
						|
        img.onload = () => {
 | 
						|
          const canvas = loadImage.scale(img, {
 | 
						|
            canvas: true,
 | 
						|
            maxWidth: 100,
 | 
						|
            maxHeight: 100,
 | 
						|
          });
 | 
						|
          const ctx = canvas.getContext('2d');
 | 
						|
          ctx.drawImage(img, 0, 0);
 | 
						|
          URL.revokeObjectURL(svgurl);
 | 
						|
          resolve(canvas.toDataURL('image/png'));
 | 
						|
        };
 | 
						|
 | 
						|
        img.src = svgurl;
 | 
						|
      });
 | 
						|
    },
 | 
						|
  });
 | 
						|
 | 
						|
  const COLORS = {
 | 
						|
    red: '#cc163d',
 | 
						|
    deep_orange: '#c73800',
 | 
						|
    brown: '#746c53',
 | 
						|
    pink: '#a23474',
 | 
						|
    purple: '#862caf',
 | 
						|
    indigo: '#5951c8',
 | 
						|
    blue: '#336ba3',
 | 
						|
    teal: '#067589',
 | 
						|
    green: '#3b7845',
 | 
						|
    light_green: '#1c8260',
 | 
						|
    blue_grey: '#895d66',
 | 
						|
    grey: '#6b6b78',
 | 
						|
  };
 | 
						|
})();
 |