Skip to content

Instantly share code, notes, and snippets.

View xavcan's full-sized avatar

xavier canal xavcan

  • c carre
  • bangkok
  • 21:24 (UTC +07:00)
View GitHub Profile
@xavcan
xavcan / gist:ee24f4deccdb9f8d3132239ae682e972
Created March 20, 2026 00:30
app avec ranger 2col; articles Ok espace zero
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Ionicons } from '@expo/vector-icons';
import { View, Text, ScrollView, FlatList, TouchableOpacity, Modal, TextInput, Alert } from 'react-native';
import { supabase } from './lib/supabase';
// Icônes modernes Ionicons pour les catégories
const categoryIcons: any = {
'Outillage général': 'construct-outline',
@xavcan
xavcan / gist:39cd81b1e9feb8db89394473edcf063f
Created March 18, 2026 22:43
gist app avec erreurs pour debug
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Ionicons } from '@expo/vector-icons';
import { View, Text, ScrollView, FlatList, TouchableOpacity, Modal, TextInput, Alert } from 'react-native';
import { supabase } from './lib/supabase';
// Icônes modernes Ionicons pour les catégories
const categoryIcons: any = {
'Outillage général': 'construct-outline',
function ItemsScreen() {
const [items, setItems] = React.useState<any[]>([]);
const [library, setLibrary] = React.useState<any[]>([]);
const [activeTab, setActiveTab] = React.useState<'bord' | 'bibliotheque'>(
'bibliotheque',
);
const [selectedCategory, setSelectedCategory] = React.useState<string | null>(
null,
);
const [selectedSubCategory, setSelectedSubCategory] =
@xavcan
xavcan / gist:d55d6f54c3a975f71eea9b4093389e0c
Created March 18, 2026 00:44
last App.tsx_workingGoodModal3 ok
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Ionicons } from '@expo/vector-icons';
import { View, Text, ScrollView, FlatList, TouchableOpacity, Modal, TextInput, Alert } from 'react-native';
import { supabase } from './lib/supabase';
// Icônes modernes Ionicons pour les catégories
const categoryIcons: any = {
'Outillage général': 'construct-outline',
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Ionicons } from '@expo/vector-icons';
import { View, Text, ScrollView, FlatList, TouchableOpacity, Modal, TextInput, Alert } from 'react-native';
import { supabase } from './lib/supabase';
// Icônes modernes Ionicons pour les catégories
const categoryIcons: any = {
'Outillage général': 'construct-outline',
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Ionicons } from '@expo/vector-icons';
import { View, Text, ScrollView, FlatList, TouchableOpacity, Modal, TextInput, Alert } from 'react-native';
import { supabase } from './lib/supabase';
// Icônes modernes Ionicons pour les catégories
const categoryIcons: any = {
'Outillage général': 'construct-outline',
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Ionicons } from '@expo/vector-icons';
import { View, Text, ScrollView, FlatList, TouchableOpacity, Modal, TextInput, Alert } from 'react-native';
import { supabase } from './lib/supabase';
// Icônes modernes Ionicons pour les catégories
const categoryIcons: any = {
'Outillage général': 'construct-outline',
function ItemsScreen() {
const [items, setItems] = React.useState<any[]>([]);
const [library, setLibrary] = React.useState<any[]>([]);
const [categories, setCategories] = React.useState<any[]>([]);
const [activeTab, setActiveTab] = React.useState<'bord' | 'bibliotheque'>('bord');
const [selectedCategory, setSelectedCategory] = React.useState<string | null>(null);
React.useEffect(() => {
async function fetchAll() {
// Articles à bord avec leur espace
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Ionicons } from '@expo/vector-icons';
import { View, Text, ScrollView, FlatList, TouchableOpacity, Modal, TextInput } from 'react-native';
import { supabase } from './lib/supabase';
import { Calendar } from 'react-native-calendars';
const Tab = createBottomTabNavigator();
[LINE] Chat dans Bangkok Startup Association
Sauvegardé le : 02/02/2026 06:42
lun. 29/12/2025
14:09 Eve (BSA team) "Good afternoon, Community! Welcome to our newcomers 👋
@Chacha @Shayan @Kratae @VentuNext PT @Jiratheep
❓ What is BSA?
BSA is the space where founders, builders, and startup supporters in Bangkok connect, share, and grow together.