Skip to content

Instantly share code, notes, and snippets.

View jakub-trzebiatowski's full-sized avatar

Jakub Trzebiatowski jakub-trzebiatowski

  • Gdańsk, Poland
  • 17:56 (UTC +01:00)
View GitHub Profile
@jakub-trzebiatowski
jakub-trzebiatowski / iOS-Keychain-Info.txt
Created June 20, 2025 14:32
Information about iOS Keychain from Apple Support
First, a timeline:
All versions of iOS prior to 10.3 beta preserve keychain items when an app is deleted.
IMPORTANT This was most definitely an implementation detail of the original iOS keychain. Our keychain documentation has never specified what would happen in this case.
10.3 beta included a change that deleted such items.
That caused compatibility problems (apps were relying on the existing behaviour, even though it wasn’t documented), so it was rolled back before 10.3 GM.
@jakub-trzebiatowski
jakub-trzebiatowski / BottomAlignedScrollView.tsx
Created April 4, 2024 08:32
BottomAlignedScrollView.tsx
import React, {useState} from 'react';
import {LayoutChangeEvent, ScrollView, StyleSheet} from 'react-native';
type BottomAlignedScrollViewProps = {
readonly children: React.ReactNode;
}
const BottomAlignedScrollView = ({children}: BottomAlignedScrollViewProps) => {
const [viewHeight, setViewHeight] = useState(0);
const [contentHeight, setContentHeight] = useState(0);

Proposal

I would like to work on this TypeScript migration issue!

TypeScript Migration Proposal Checklist

  • I have resolved at least two Expensify issues
  • I have considerable experience with the TypeScript programming language:
    • I have professional experience working with TypeScript
  • I have contributed to open-source projects using TypeScript
#!/usr/bin/env bash
set -ex
[ -n "$1" ] || exit 1
cd /var/www
SHOP_NAME=$1
DB_CREDENTIALS=$(
php <<PHP
<?php
require '$SHOP_NAME/config/settings.inc.php';
print(_DB_USER_ . ' ' . _DB_PASSWD_ . ' ' . _DB_NAME_ . PHP_EOL);
function ReportActionItemFragment(props) {
+ /**
+ * Checks text element for presence of emoji as first character
+ * and insert Zero-Width character to avoid selection issue
+ * mentioned here https://github.com/Expensify/App/issues/29021
+ *
+ * @param {String} text
+ * @param {Boolean} displayAsGroup
+ * @returns {ReactNode | null} Text component with zero width character
+ */
function ReportActionItemFragment(props) {
<<<<<<< HEAD
const fragment = props.fragment;
switch (fragment.type) {
=======
/**
* Checks text element for presence of emoji as first character
* and insert Zero-Width character to avoid selection issue
* mentioned here https://github.com/Expensify/App/issues/29021
#!/usr/bin/env python3
import argparse
import subprocess
def git_upstream_diff(path, branch, fetch):
if fetch:
# Fetch the latest changes from the upstream
subprocess.run(['git', 'fetch', branch.split('/')[0]], check=True)
#!/bin/bash
# Check if ffmpeg is installed
if ! command -v ffmpeg &> /dev/null
then
echo "ffmpeg could not be found. Please install it and try again."
exit 1
fi
# Check if a file path was provided
@jakub-trzebiatowski
jakub-trzebiatowski / ffmpeg-compress.sh
Created September 1, 2023 08:11
A script for compressing videos
#!/bin/bash
# Check if the input file is provided
if [ -z "$1" ]; then
echo "Usage: $0 <input_file>"
exit 1
fi
# Get input file
input_file="$1"
@jakub-trzebiatowski
jakub-trzebiatowski / github-repo-config.md
Last active April 24, 2023 09:53
Sensible GitHub repository configuration

Highly opinionated. This works for my use cases. Some parts assume that GitHub Actions are used.

General

Pull Requests

image

  • Ensure "Allow merge commits" is unchecked
  • Ensure "Allow squash commits" is unchecked