Этот простой компонент темы изменит иконку «Поделиться» в постах и темах с на . На Android она будет заменена на .
Примечание: Если вы используете copyLink в post_menu, то, вероятно, вам не нужен этот компонент, так как он мгновенно копирует ссылку на пост на рабочем столе, и иконка отлично подходит для этого. Возможно, мне стоит ограничить действие этого компонента только мобильными устройствами или оставить исходную иконку ссылки на рабочем столе, если включён copyLink.
Чтобы решить эту проблему, я добавил настройку, позволяющую отключить изменение иконки на рабочем столе. Рекомендуется включить её, если copyLink добавлен в post_menu. Функция copyLink добавлена по умолчанию, поэтому эта настройка также включена по умолчанию. Это сохранит стандартную иконку ссылки на постах на рабочем столе.
Мне нравится идея этого компонента, но я немного сомневаюсь как пользователь мобильного Apple: действительно ли это работает, ведь функциональность иконки ОС в самой ОС отличается. Это больше, чем просто ссылка или копирование ссылки. Но, возможно, я просто слишком много думаю и драматизирую, потому что мне скучно.
Я добавил настройку, чтобы на рабочих столах сохранялась иконка ссылки по умолчанию, если активна функция мгновенного копирования ссылки на пост.
На iOS и Android иконка ссылки по умолчанию будет изменена, так как используется нативная панель обмена. То есть ссылка на пост не копируется мгновенно, а открывается нативная панель обмена.
В целом, иконка ссылки сохраняется по умолчанию только в том случае, если ссылка на пост копируется мгновенно. Но это можно контролировать с помощью настройки.
В консоли разработчика браузера появилось уведомление об устаревании этого отличного компонента темы:
[THEME 57 «Изменение значка «Поделиться» в зависимости от ОС»] Уведомление об устаревании: Обращение к site.mobileView или site.desktopView во время инициализации сайта может привести к ошибкам и несогласованности при изменении размера окна браузера. Пожалуйста, переместите эти проверки в компонент, трансформер или обратный вызов API, который выполняется во время рендеринга страницы. [устарело начиная с версии Discourse 3.5.0.beta9-dev] [id устаревания: discourse.static-viewport-initialization] [информация: Designing for Different Devices (Viewport Size, Touch/Hover, etc.)]