Skip to content

Instantly share code, notes, and snippets.

SELECT *
FROM (
SELECT IT.ID,
ROW_NUMBER()
OVER (
PARTITION BY
IT.VendorId,
IT.ItemNumber,
I.StoreID
ORDER BY I.InvoiceDate DESC, IT.InvoiceID DESC
// Browsers.tsx
export function Browsers() {
return <BrowsersList {...useBrowsers('https://google.com/myData.json')} />
}
// useBrowsers.ts
export function useBrowsers(url: string): BrowsersListProps {
const {loading, data} = useFetch<FetchBrowsersResults>(url)
import {useState} from 'react'
import {Browser, BrowsersListProps} from '../components/BrowsersList'
import {useFetch} from '../../../hooks/useFetch'
export type FetchBrowsersResults = {
Browsers: Browser[]
}
export function useBrowsers(url: string): BrowsersListProps {
const {loading, data} = useFetch<FetchBrowsersResults>(url)
import {useEffect, useState} from 'react'
import {Alert} from 'react-native'
export type UseFetch<T> = {
loading: boolean
data?: T
}
export function useFetch<T>(url: string): UseFetch<T> {
const [loading, setLoading] = useState<boolean>(false)
export type FetchBrowsersResults = {
Browsers: Browser[]
}
export type UseFetch<T> = {
loading: boolean
// We use Generic. T - is a type argument that can be any type.
// We can useFetch() with any type
// ? means, that T can be undefined
import {useEffect, useState} from 'react'
import {Browser, BrowsersListProps} from '../components/BrowsersList'
export function useBrowsers(url: string): BrowsersListProps {
const [loading, setLoading] = useState(false)
const [browsers, setBrowsers] = useState<Browser[]>([])
const [selectedBrowser, setSelectedBrowser] = useState<Browser | undefined>(
undefined,
)
import React from 'react'
import {StyleSheet, View} from 'react-native'
import AddModal from '../../../components/AddModal'
import BrowserItem from '../../../components/BrowserItem'
import {UIFriendlyList} from '../../../components/UIFriendlyList'
const styles = StyleSheet.create({
container: {
justifyContent: 'center',
alignItems: 'center',
import React from 'react'
import {FlatList, FlatListProps, Text} from 'react-native'
import LoadingIndicator from './LoadingIndicator'
export type UIFriendlyListProps<T> = FlatListProps<T> & {loading?: boolean}
export function UIFriendlyList<T>(props: UIFriendlyListProps<T>) {
if (props.loading) {
return <LoadingIndicator />
}
type UIFriendlyListProps<T> = FlatListProps<T> & {loading?: boolean}
import React from 'react'
import {FlatList, StyleSheet, View} from 'react-native'
import AddModal from '../../../components/AddModal'
import LoadingIndicator from '../../../components/LoadingIndicator'
import BrowserItem from '../../../components/BrowserItem'
const styles = StyleSheet.create({
container: {
justifyContent: 'center',
alignItems: 'center',