import React from 'dom-chef'; import select from 'select-dom'; import * as pageDetect from 'github-url-detection'; import features from '.'; import fetchDom from '../helpers/fetch-dom'; import {getCleanPathname} from '../github-helpers'; const fetchStargazers = async (): Promise => { const url = `/${getCleanPathname()}/followers/you_know`; const dom = await fetchDom(url); return select.all('.follow-list-item .avatar', dom); }; const avatarSize = 35; function renderAvatar(image: HTMLImageElement): HTMLElement { const imageUrl = new URL(image.src); imageUrl.searchParams.set('s', String(avatarSize * window.devicePixelRatio)); image.src = String(imageUrl); image.width = avatarSize; image.height = avatarSize; return ( {image} ); } async function init(): Promise { const container = select('[itemtype="http://schema.org/Person"]'); if (!container) { return false; } const stargazers = await fetchStargazers(); if (stargazers.length === 0) { return false; } container.append(

Followers you know

{stargazers.map(renderAvatar)}
); } void features.add({ id: __filebasename, disabled: '#3345', description: 'Followers you know are shown on profile pages', screenshot: 'https://user-images.githubusercontent.com/2906365/42009293-b1503f62-7a57-11e8-88f5-9c2fb3651a14.png' }, { include: [ pageDetect.isUserProfile ], exclude: [ pageDetect.isOwnUserProfile ], init });