mirror of
https://github.com/inaturalist/iNaturalistReactNative.git
synced 2026-04-20 06:53:56 -04:00
* WIP: very rough start at pulling state up into a container for MyObservations I made a parallel MyObservations component and container so ObservationViews can still be used as a working reference, but the ultimate goal here is to focus MyObservations on presentation, and pull state and other business logic up into a container component. This should make MyObservations a bit more testable and clean up a very large and confusing file. I'm also trying to move away from a generalized representation of observations on all screens, which is why I want to name it MyObservations and not ObservationViews. MyObservations has a lot of unique functionality that we won't need elsewhere, and we can modularize stuff when we need to use it in multiple places. * UI updates for header, toolbar, empty component * Add pressable component and login sheet * UI improvements; get infinite scroll working * UI improvements & additions for empty screen & bottom sheet * Show login sheet when a user presses sync but is not logged in * Fix backdrop close for AddObsModal * Move UI elements to MyObservations * Fix unit tests for MyObservations * Fix for login sheet * Set header height to a different height on Android to account for safe area * Fix failing tests & rerender of user icon in navbar * Remove scientific name from DisplayTaxonName to match Figma UI * Set height above toolbar dynamically for sticky toolbar * Add prop to display or hide second name in DisplayTaxonName * Use RN styling to style grid view for MyObs flatlist * Fix failing project obs test * Create separate ToolbarContainer to separate presentation from logic; fix upload count * Merge main and show onboarding based on user's total obs count * Fix display taxon name styling and remove header fade on iOS * Add header text for 0 observations, logged out state * Update infinite scroll to 50 obs at a time; make loading wheel show faster * Add uploaded status to toolbar * Apply bandaid fix to stop Android from crashing on start * Start adding new icons to MyObs * Add circular progress; show upload icons at correct times during upload * Add disabled props for accessibility state * Fix tests; update snapshots * Code cleanup * Code cleanup & add inaturalist icon * Fix merge conflict and add icon * Add inaturalist icon * Fix navigation to obs list and toolbar status when upload completes * Move showLoginSheet code to MyObsContainer * Fix toolbar status text * Sync toolbar with upload status progress * Clear toolbar after nav * Tests passing * Update e2e test * Target login button in e2e tests * Fix failing e2e tests with new testID for login button * Update button snapshot to include new testID --------- Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
26 lines
602 B
JavaScript
26 lines
602 B
JavaScript
// @flow
|
|
|
|
import { View } from "components/styledComponents";
|
|
import type { Node } from "react";
|
|
import React from "react";
|
|
import { ActivityIndicator } from "react-native";
|
|
|
|
type Props = {
|
|
isLoading?: boolean,
|
|
currentUser: ?Object
|
|
}
|
|
|
|
const InfiniteScrollLoadingWheel = ( { isLoading, currentUser }: Props ): Node => {
|
|
const className = "h-64 border-t border-border py-16";
|
|
if ( !isLoading || !currentUser ) {
|
|
return <View className="h-64 py-16" />;
|
|
}
|
|
return (
|
|
<View className={className}>
|
|
<ActivityIndicator />
|
|
</View>
|
|
);
|
|
};
|
|
|
|
export default InfiniteScrollLoadingWheel;
|