Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
justinkx committed Aug 1, 2020
0 parents commit ebd3b8b
Show file tree
Hide file tree
Showing 188 changed files with 28,027 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .buckconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

[android]
target = Google Inc.:Google APIs:23

[maven_repositories]
central = https://repo1.maven.org/maven2
9 changes: 9 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
//Path: /.eslintrc.js

module.exports = {
extends: ['airbnb'],
rules: {
'react/jsx-filename-extension': 'off',
//You can override any rules you want
},
};
5 changes: 5 additions & 0 deletions .firebaserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"projects": {
"default": "multiplicate-app"
}
}
74 changes: 74 additions & 0 deletions .flowconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
[ignore]
; We fork some components by platform
.*/*[.]android.js

; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/

; Ignore polyfills
node_modules/react-native/Libraries/polyfills/.*

; These should not be required directly
; require from fbjs/lib instead: require('fbjs/lib/warning')
node_modules/warning/.*

; Flow doesn't support platforms
.*/Libraries/Utilities/LoadingView.js

[untyped]
.*/node_modules/@react-native-community/cli/.*/.*

[include]

[libs]
node_modules/react-native/interface.js
node_modules/react-native/flow/

[options]
emoji=true

esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable

module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js

munge_underscores=true

module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'

suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState

suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError

[lints]
sketchy-null-number=warn
sketchy-null-mixed=warn
sketchy-number=warn
untyped-type-import=warn
nonstrict-import=warn
deprecated-type=warn
unsafe-getters-setters=warn
inexact-spread=warn
unnecessary-invariant=warn
signature-verification-failure=warn
deprecated-utility=error

[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import

[version]
^0.113.0
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pbxproj -text
61 changes: 61 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate

# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml

# node.js
#
node_modules/
npm-debug.log
yarn-error.log

# BUCK
buck-out/
\.buckd/
*.keystore
!debug.keystore

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/

*/fastlane/report.xml
*/fastlane/Preview.html
*/fastlane/screenshots

# Bundle artifact
*.jsbundle

# CocoaPods
/ios/Pods/
google-services.json
GoogleService-Info.plist
10 changes: 10 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
//Path: /.prettierrc.js

module.exports = {
bracketSpacing: true,
jsxBracketSameLine: true,
singleQuote: true,
tabWidth: 2,
trailingComma: 'all',
// Override any other rules you want
};
4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"editor.formatOnPaste": true,
"editor.formatOnSave": true
}
1 change: 1 addition & 0 deletions .watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
46 changes: 46 additions & 0 deletions App/App.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import React, { useEffect, useRef } from 'react';
import { SafeAreaView, StyleSheet, StatusBar } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { AppDrawer } from './Navigation/Navigator';
import { ThemeContextProvider } from './Theme/ThemeProvider';
import { enableAnimation } from './Utils/Animation';
import SplashScreen from 'react-native-splash-screen';
import analytics from '@react-native-firebase/analytics';

const App = () => {
const routeNameRef = useRef();
const getActiveRouteName = (state) => {
const route = state.routes[state.index];
if (route.state) {
return getActiveRouteName(route.state);
}
return route.name;
};

useEffect(() => {
enableAnimation();
SplashScreen.hide();
}, []);
return (
<>
<StatusBar barStyle="light-content" />
<NavigationContainer
onStateChange={(state) => {
const previousRouteName = routeNameRef.current;
const currentRouteName = getActiveRouteName(state);
if (previousRouteName !== currentRouteName) {
analytics().setCurrentScreen(currentRouteName, currentRouteName);
}
routeNameRef.current = currentRouteName;
}}>
<ThemeContextProvider>
<AppDrawer />
</ThemeContextProvider>
</NavigationContainer>
</>
);
};

const styles = StyleSheet.create({});

export default App;
Binary file added App/Assets/Images/empty-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions App/Assets/Images/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions App/Assets/Images/side menu.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added App/Assets/Images/subCategories/category9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions App/Assets/Lottie/under-development.json

Large diffs are not rendered by default.

Binary file added App/Assets/fonts/Montserrat-Regular.ttf
Binary file not shown.
Binary file added App/Assets/fonts/Montserrat-SemiBold.ttf
Binary file not shown.
115 changes: 115 additions & 0 deletions App/Components/Categories/CategoriesCard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
import React, { memo, useCallback } from "react";
import Carousel from "react-native-snap-carousel";
import styles, {
sliderWidth,
itemWidth,
slideHeight,
} from "./SliderEntryStyle";
import { View, TouchableOpacity, Image, Platform } from "react-native";
import { scrollInterpolators, animatedStyles } from "./animations";
import SkeletonLoader from "../skeletonLoader";
import { useNavigation } from "@react-navigation/native";

function CategoriesCard({ categories, backgroundColor, themeValues }) {
const navigation = useNavigation();
const press = useCallback(
(item) => {
navigation.push("SubCategoryPage", {
category: item,
});
},
[categories]
);
const _renderItem = useCallback(
({ item, index }) => {
const { image, isConstant = false } = item;

return (
<RenderItem
press={press}
item={item}
isConstant={isConstant}
image={image}
/>
);
},
[categories]
);
return (
<>
{Platform.OS === "ios" ? (
<Carousel
data={categories}
renderItem={_renderItem}
sliderWidth={sliderWidth}
itemWidth={itemWidth}
scrollInterpolator={
scrollInterpolators[
`scrollInterpolator${themeValues.key === "Dark Mode" ? "2" : "1"}`
]
}
slideInterpolatedStyle={animatedStyles[`animatedStyles${"2"}`]}
containerCustomStyle={styles.slider}
contentContainerCustomStyle={styles.sliderContentContainer}
loop={true}
loopClonesPerSide={5}
useScrollView={true}
enableMomentum={true}

// autoplay={true}
// autoplayDelay={2000}
/>
) : (
<Carousel
data={categories}
renderItem={_renderItem}
sliderWidth={sliderWidth}
itemWidth={itemWidth}
layout={themeValues.key === "Dark Mode" ? "stack" : "tinder"}
layoutCardOffset={18}
containerCustomStyle={styles.slider}
contentContainerCustomStyle={styles.sliderContentContainer}
loop={true}
/>
)}
</>
);
}
export default CategoriesCard = memo(CategoriesCard);
const RenderItem = memo(function RenderItem({
isConstant,
item,
image,
press,
}) {
return (
<TouchableOpacity
onPress={() => press(item)}
activeOpacity={0.8}
style={[styles.slideInnerContainer]}
>
<View style={styles.shadow} />
{isConstant ? (
<SkeletonLoader
height={slideHeight}
type={"rectangle"}
bottomRadius={10}
topRadius={10}
loading={true}
/>
) : (
<Image
source={{
uri: image,
}}
resizeMode="cover"
style={{
width: "100%",
height: "100%",
borderRadius: 10,
}}
/>
)}
</TouchableOpacity>
);
});
Loading

0 comments on commit ebd3b8b

Please sign in to comment.