├── .gitignore ├── .prettierrc ├── .vscode ├── extensions.json └── settings.json ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── SECURITY.md ├── app.json ├── assets ├── images │ ├── android-icon-background.png │ ├── android-icon-foreground.png │ ├── android-icon-monochrome.png │ ├── favicon.png │ ├── icon.png │ ├── splash-icon-dark.png │ └── splash-icon.png └── licenses.json ├── babel.config.js ├── eslint.config.js ├── metro.config.js ├── package.json ├── src ├── app │ ├── (tabs) │ │ ├── _layout.tsx │ │ ├── create.tsx │ │ ├── index.tsx │ │ └── profile.tsx │ ├── _layout.tsx │ ├── create-account.tsx │ ├── modal.tsx │ ├── oauth-callback.tsx │ ├── onboarding │ │ ├── _layout.tsx │ │ ├── final.tsx │ │ └── index.tsx │ ├── private │ │ ├── notifications │ │ │ └── index.tsx │ │ ├── profile │ │ │ ├── [id].jsx │ │ │ ├── feed │ │ │ │ └── [id].tsx │ │ │ └── followers │ │ │ │ └── [id].jsx │ │ ├── search │ │ │ └── index.tsx │ │ ├── settings │ │ │ ├── account │ │ │ │ ├── birthdate │ │ │ │ │ └── index.tsx │ │ │ │ ├── edit-bio.tsx │ │ │ │ ├── edit-name.tsx │ │ │ │ ├── edit-username.tsx │ │ │ │ ├── edit.tsx │ │ │ │ ├── email │ │ │ │ │ ├── change.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── verify.tsx │ │ │ │ └── index.tsx │ │ │ ├── index.tsx │ │ │ ├── legal │ │ │ │ ├── community.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── openSource.tsx │ │ │ │ ├── privacy.tsx │ │ │ │ └── terms.tsx │ │ │ ├── privacy │ │ │ │ ├── blockedAccounts.tsx │ │ │ │ └── index.tsx │ │ │ └── security │ │ │ │ ├── index.tsx │ │ │ │ └── password.tsx │ │ └── video │ │ │ ├── [id].jsx │ │ │ ├── duet │ │ │ ├── [id].tsx │ │ │ ├── caption │ │ │ │ └── index.tsx │ │ │ └── preview │ │ │ │ └── index.tsx │ │ │ └── edit │ │ │ └── [id].tsx │ └── sign-in.tsx ├── components │ ├── AppText.tsx │ ├── Avatar.tsx │ ├── Button.tsx │ ├── ReportModal.tsx │ ├── feed │ │ ├── CommentsModal.tsx │ │ ├── LinkifiedCaption.tsx │ │ ├── OtherModal.tsx │ │ ├── ShareModal.tsx │ │ └── VideoPlayer.tsx │ ├── notifications │ │ └── NotificationItem.tsx │ ├── profile │ │ ├── AccountHeader.jsx │ │ ├── AccountListItem.jsx │ │ ├── AccountTabs.jsx │ │ └── VideoGrid.jsx │ ├── settings │ │ └── Stack.tsx │ └── ui │ │ ├── PressableHaptics.tsx │ │ ├── Stack.tsx │ │ ├── external-link.tsx │ │ ├── haptic-tab.tsx │ │ ├── themed-text.tsx │ │ └── useThemeStore.ts ├── constants │ └── theme.ts ├── hooks │ ├── use-color-scheme.ts │ ├── use-color-scheme.web.ts │ ├── use-theme-color.ts │ └── useDebounce.js ├── services │ └── oauth.ts └── utils │ ├── authStore.ts │ ├── cache.ts │ ├── requests.ts │ ├── sharer.ts │ └── ui.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/.prettierrc -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/SECURITY.md -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/app.json -------------------------------------------------------------------------------- /assets/images/android-icon-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/assets/images/android-icon-background.png -------------------------------------------------------------------------------- /assets/images/android-icon-foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/assets/images/android-icon-foreground.png -------------------------------------------------------------------------------- /assets/images/android-icon-monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/assets/images/android-icon-monochrome.png -------------------------------------------------------------------------------- /assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/assets/images/favicon.png -------------------------------------------------------------------------------- /assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/assets/images/icon.png -------------------------------------------------------------------------------- /assets/images/splash-icon-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/assets/images/splash-icon-dark.png -------------------------------------------------------------------------------- /assets/images/splash-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/assets/images/splash-icon.png -------------------------------------------------------------------------------- /assets/licenses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/assets/licenses.json -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/babel.config.js -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/eslint.config.js -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/metro.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/package.json -------------------------------------------------------------------------------- /src/app/(tabs)/_layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/(tabs)/_layout.tsx -------------------------------------------------------------------------------- /src/app/(tabs)/create.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/(tabs)/create.tsx -------------------------------------------------------------------------------- /src/app/(tabs)/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/(tabs)/index.tsx -------------------------------------------------------------------------------- /src/app/(tabs)/profile.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/(tabs)/profile.tsx -------------------------------------------------------------------------------- /src/app/_layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/_layout.tsx -------------------------------------------------------------------------------- /src/app/create-account.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/create-account.tsx -------------------------------------------------------------------------------- /src/app/modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/modal.tsx -------------------------------------------------------------------------------- /src/app/oauth-callback.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/oauth-callback.tsx -------------------------------------------------------------------------------- /src/app/onboarding/_layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/onboarding/_layout.tsx -------------------------------------------------------------------------------- /src/app/onboarding/final.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/onboarding/final.tsx -------------------------------------------------------------------------------- /src/app/onboarding/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/onboarding/index.tsx -------------------------------------------------------------------------------- /src/app/private/notifications/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/notifications/index.tsx -------------------------------------------------------------------------------- /src/app/private/profile/[id].jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/profile/[id].jsx -------------------------------------------------------------------------------- /src/app/private/profile/feed/[id].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/profile/feed/[id].tsx -------------------------------------------------------------------------------- /src/app/private/profile/followers/[id].jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/profile/followers/[id].jsx -------------------------------------------------------------------------------- /src/app/private/search/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/search/index.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/birthdate/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/birthdate/index.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/edit-bio.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/edit-bio.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/edit-name.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/edit-name.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/edit-username.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/edit-username.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/edit.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/edit.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/email/change.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/email/change.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/email/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/email/index.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/email/verify.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/email/verify.tsx -------------------------------------------------------------------------------- /src/app/private/settings/account/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/account/index.tsx -------------------------------------------------------------------------------- /src/app/private/settings/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/index.tsx -------------------------------------------------------------------------------- /src/app/private/settings/legal/community.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/legal/community.tsx -------------------------------------------------------------------------------- /src/app/private/settings/legal/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/legal/index.tsx -------------------------------------------------------------------------------- /src/app/private/settings/legal/openSource.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/legal/openSource.tsx -------------------------------------------------------------------------------- /src/app/private/settings/legal/privacy.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/legal/privacy.tsx -------------------------------------------------------------------------------- /src/app/private/settings/legal/terms.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/legal/terms.tsx -------------------------------------------------------------------------------- /src/app/private/settings/privacy/blockedAccounts.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/privacy/blockedAccounts.tsx -------------------------------------------------------------------------------- /src/app/private/settings/privacy/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/privacy/index.tsx -------------------------------------------------------------------------------- /src/app/private/settings/security/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/security/index.tsx -------------------------------------------------------------------------------- /src/app/private/settings/security/password.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/settings/security/password.tsx -------------------------------------------------------------------------------- /src/app/private/video/[id].jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/video/[id].jsx -------------------------------------------------------------------------------- /src/app/private/video/duet/[id].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/video/duet/[id].tsx -------------------------------------------------------------------------------- /src/app/private/video/duet/caption/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/video/duet/caption/index.tsx -------------------------------------------------------------------------------- /src/app/private/video/duet/preview/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/video/duet/preview/index.tsx -------------------------------------------------------------------------------- /src/app/private/video/edit/[id].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/private/video/edit/[id].tsx -------------------------------------------------------------------------------- /src/app/sign-in.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/app/sign-in.tsx -------------------------------------------------------------------------------- /src/components/AppText.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/AppText.tsx -------------------------------------------------------------------------------- /src/components/Avatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/Avatar.tsx -------------------------------------------------------------------------------- /src/components/Button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/Button.tsx -------------------------------------------------------------------------------- /src/components/ReportModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/ReportModal.tsx -------------------------------------------------------------------------------- /src/components/feed/CommentsModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/feed/CommentsModal.tsx -------------------------------------------------------------------------------- /src/components/feed/LinkifiedCaption.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/feed/LinkifiedCaption.tsx -------------------------------------------------------------------------------- /src/components/feed/OtherModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/feed/OtherModal.tsx -------------------------------------------------------------------------------- /src/components/feed/ShareModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/feed/ShareModal.tsx -------------------------------------------------------------------------------- /src/components/feed/VideoPlayer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/feed/VideoPlayer.tsx -------------------------------------------------------------------------------- /src/components/notifications/NotificationItem.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/notifications/NotificationItem.tsx -------------------------------------------------------------------------------- /src/components/profile/AccountHeader.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/profile/AccountHeader.jsx -------------------------------------------------------------------------------- /src/components/profile/AccountListItem.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/profile/AccountListItem.jsx -------------------------------------------------------------------------------- /src/components/profile/AccountTabs.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/profile/AccountTabs.jsx -------------------------------------------------------------------------------- /src/components/profile/VideoGrid.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/profile/VideoGrid.jsx -------------------------------------------------------------------------------- /src/components/settings/Stack.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/settings/Stack.tsx -------------------------------------------------------------------------------- /src/components/ui/PressableHaptics.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/ui/PressableHaptics.tsx -------------------------------------------------------------------------------- /src/components/ui/Stack.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/ui/Stack.tsx -------------------------------------------------------------------------------- /src/components/ui/external-link.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/ui/external-link.tsx -------------------------------------------------------------------------------- /src/components/ui/haptic-tab.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/ui/haptic-tab.tsx -------------------------------------------------------------------------------- /src/components/ui/themed-text.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/ui/themed-text.tsx -------------------------------------------------------------------------------- /src/components/ui/useThemeStore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/components/ui/useThemeStore.ts -------------------------------------------------------------------------------- /src/constants/theme.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/constants/theme.ts -------------------------------------------------------------------------------- /src/hooks/use-color-scheme.ts: -------------------------------------------------------------------------------- 1 | export { useColorScheme } from 'react-native'; 2 | -------------------------------------------------------------------------------- /src/hooks/use-color-scheme.web.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/hooks/use-color-scheme.web.ts -------------------------------------------------------------------------------- /src/hooks/use-theme-color.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/hooks/use-theme-color.ts -------------------------------------------------------------------------------- /src/hooks/useDebounce.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/hooks/useDebounce.js -------------------------------------------------------------------------------- /src/services/oauth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/services/oauth.ts -------------------------------------------------------------------------------- /src/utils/authStore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/utils/authStore.ts -------------------------------------------------------------------------------- /src/utils/cache.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/utils/cache.ts -------------------------------------------------------------------------------- /src/utils/requests.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/utils/requests.ts -------------------------------------------------------------------------------- /src/utils/sharer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/utils/sharer.ts -------------------------------------------------------------------------------- /src/utils/ui.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/src/utils/ui.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joinloops/loops-expo/HEAD/tsconfig.json --------------------------------------------------------------------------------