import React, { Component } from 'react' import { View, Button, Text, ScrollView } from 'react-native' import Share from 'react-native-share' import { Base64 } from 'js-base64' import styles from '../styles/index' import objectPath from 'object-path' export default class Settings extends Component { constructor(props) { super(props) this.state = { pickerVisible: false } } render() { return ( {this.state.welcomeText} ) } } function makeDataURI() { //TODO handle empty DB const data = [{ date: '2018-06-23', temperature: { value: 36.8, exclude: false } }] const csv = transformToCsv(data) const encoded = Base64.encodeURI(csv) return `data:text/csv;base64,${encoded}` } function transformToCsv(json) { const day = json[0] const columnNames = getPrefixedKeys(day) const rows = json .map(day => { return columnNames.map(column => { return objectPath.get(day, column, '') }) }) .map(row => row.join(',')) rows.unshift(columnNames.join(',')) return rows.join('\n') } function getPrefixedKeys(obj, prefix) { return Object.keys(obj).reduce((acc, key) => { const prefixedKey = prefix ? [prefix, key].join('.') : key if (typeof obj[key] != 'object') { acc.push(prefixedKey) return acc } acc.push(...getPrefixedKeys(obj[key], prefixedKey)) return acc }, []) }