Skip to content

Instantly share code, notes, and snippets.

View williamjayjay's full-sized avatar
🌍
In focused

William FS williamjayjay

🌍
In focused
View GitHub Profile
@williamjayjay
williamjayjay / useCheckAppVersion.tsx
Last active May 9, 2025 18:42
React Native useCheckAppVersion
import { useNavigation } from "@react-navigation/native";
import { useEffect, useState } from "react";
import { Modal, View, Text, Button, Platform, Linking, Alert } from "react-native";
import { useTranslation } from "react-i18next";
import VersionCheck from "react-native-version-check";
export function useCheckAppVersion() {
const [showModal, setShowModal] = useState(false);
const [latestVersion, setLatestVersion] = useState("");
@williamjayjay
williamjayjay / index.html
Created July 15, 2025 18:17
RPG GAME - Focus Pomodoro D3
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Diário do Aventureiro - Registro de Missões</title>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=MedievalSharp&display=swap"
rel="stylesheet">
<style>
@williamjayjay
williamjayjay / reactMemo_MultiSelect_App.tsx
Created July 16, 2025 15:09
performance, react memo multiselect
import React, { memo, useCallback, useState } from 'react';
import { FlatList, Text, Button, View, StyleSheet, Pressable } from 'react-native';
// Interface para os dados de cada item da lista
interface ItemData {
id: string;
selected: boolean; // Indica se o item está selecionado
}
// Interface para as propriedades do componente Item
@williamjayjay
williamjayjay / index.ts
Created July 19, 2025 17:14
Cloud Function to return .env
import { onCall, CallableRequest, HttpsError } from "firebase-functions/v2/https";
import * as logger from "firebase-functions/logger";
import * as admin from "firebase-admin";
admin.initializeApp();
export const getMetalcodeAccessToken = onCall(async (request: CallableRequest<unknown>) => {
// Acesse o token via process.env
const accessToken = process.env.METALCODEAPI_ACCESS_TOKEN;
@williamjayjay
williamjayjay / App.tsx
Created July 19, 2025 17:18
App to get and show accessToken send by Cloud Function
import { StatusBar } from 'expo-status-bar';
import { StyleSheet, Text, View } from 'react-native';
import { useEffect, useState } from 'react';
import functions from '@react-native-firebase/functions';
export default function App() {
const [token, setToken] = useState<string | null>(null);
const [error, setError] = useState<string | null>(null);
useEffect(() => {