Add alt text support and rework image layout (#503)

* Add alt text support and rework image layout

* Add additional BottomSheet implementation to account for nested Composer modal

* Use mobile gallery layout on mobile web

* Missing key

* Fix lint

* Move altimage modal into the standard modal system

* Fix overflow wrapping of images

* Fixes to the alt-image modal

* Remove unnecessary switch

* Restore old imagelayoutgrid code

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
This commit is contained in:
Ollie Hsieh 2023-04-21 14:20:06 -07:00 committed by GitHub
parent 0f5735b616
commit f0706dbe9f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 412 additions and 132 deletions

View file

@ -3,7 +3,7 @@ import {RootStoreModel} from '../root-store'
import {makeAutoObservable} from 'mobx'
import {ProfileModel} from '../content/profile'
import {isObj, hasProp} from 'lib/type-guards'
import {Image} from 'lib/media/types'
import {Image as RNImage} from 'react-native-image-crop-picker'
export interface ConfirmModal {
name: 'confirm'
@ -38,7 +38,12 @@ export interface ReportAccountModal {
export interface CropImageModal {
name: 'crop-image'
uri: string
onSelect: (img?: Image) => void
onSelect: (img?: RNImage) => void
}
export interface AltTextImageModal {
name: 'alt-text-image'
onAltTextSet: (altText?: string) => void
}
export interface DeleteAccountModal {
@ -70,18 +75,30 @@ export interface ContentFilteringSettingsModal {
}
export type Modal =
| ConfirmModal
| EditProfileModal
| ServerInputModal
| ReportPostModal
| ReportAccountModal
| CropImageModal
| DeleteAccountModal
| RepostModal
// Account
| ChangeHandleModal
| DeleteAccountModal
| EditProfileModal
// Curation
| ContentFilteringSettingsModal
// Reporting
| ReportAccountModal
| ReportPostModal
// Posting
| AltTextImageModal
| CropImageModal
| ServerInputModal
| RepostModal
// Bluesky access
| WaitlistModal
| InviteCodesModal
| ContentFilteringSettingsModal
// Generic
| ConfirmModal
interface LightboxModel {}