Этот простой компонент темы изменит иконку «Поделиться» в постах и темах с на . На 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.)]