Skip to content

Instantly share code, notes, and snippets.

View AnasTawfeek's full-sized avatar

Anas Tawfik AnasTawfeek

  • Booking.com
  • Amsterdam, Netherlands
View GitHub Profile
@AnasTawfeek
AnasTawfeek / promisify.ts
Created October 29, 2021 03:40
Helper function for promise chain in case async/await can't be used
type IPromise = (data: object) => Promise<object>;
type IPromisify = (promise: IPromise) => (data: object) => Promise<object>;
const promise1: IPromise = (data) => {
console.log('Calling promise1 with', data);
return new Promise((resolve) => {
setTimeout(() => resolve({ one: 1 }), 400);
});
};
const promise2: IPromise = (data) => {
import React, { FC } from 'react';
import { FieldArrayRenderProps } from 'formik';
import cn from 'classnames';
import { IField } from '../../types';
import * as Patterns from '../../patterns';
import './style.scss';
interface IFieldProps {
@AnasTawfeek
AnasTawfeek / block-example.js
Created April 30, 2020 09:18
Example block for Wordpress gutenberg
/**
* BLOCK: block-name
*/
import './style.scss';
import './editor.scss';
const { registerBlockType } = wp.blocks
const {
TextControl, CheckboxControl, SelectControl, Button,
@AnasTawfeek
AnasTawfeek / cloudSettings
Last active August 11, 2021 13:42
VSCode Settings Sync
{"lastUpload":"2021-08-11T13:42:49.963Z","extensionVersion":"v3.4.3"}
@AnasTawfeek
AnasTawfeek / index.php
Created January 16, 2019 14:52
[Add Admin Menu Page and Sub Menus] Create an admin menu page with sub menus #wordpress #php
add_menu_page('Menu Title', 'Menu Title', 'manage_options', 'main_menu', 'submenu_1_callback');
add_submenu_page('main_menu', 'Sub Menu Title 1', 'Sub Menu Title 1', 'manage_options', 'main_menu' , 'submenu_1_callback');
add_submenu_page('main_menu', 'Sub Menu Title 2', 'Sub Menu Title 2', 'manage_options', 'sub_menu' , 'submenu_2_callback');
@AnasTawfeek
AnasTawfeek / index.php
Created January 16, 2019 14:04
[Save activation crash errors] Save wordpress crash errors while activating a plugin in option #wordpress #php
// Get error content and update it
function tl_save_error() {
update_option( 'plugin_error', ob_get_contents() );
}
// Register the error handler
add_action( 'activated_plugin', 'tl_save_error' );
// Display the error
echo get_option( 'plugin_error' );
@AnasTawfeek
AnasTawfeek / index.php
Created January 16, 2019 14:02
[Handle Options] Handle Wordpress Options #wordpress #php
// Add option
add_option( 'option_key', 'option_value' );
// Delete option
delete_option( 'option_key' );
// Update option
update_option( 'option_key', 'option_value' );
// Get option
@AnasTawfeek
AnasTawfeek / index.php
Created January 16, 2019 13:59
[Get Version] Get Wordpress current version #wordpress #php
// Get version and compare it
global $wp_version;
if ( version_compare( $wp_version, '4.3', '>=' ) ) {
// WordPress version is greater than 4.3
}
// Reusable util
/*
@AnasTawfeek
AnasTawfeek / 01-httpstats.js
Last active November 12, 2018 15:22
Axios Examples
import axios from 'axios'
// Creating httpstat service instance
export default axios.create({
baseURL: 'https://httpstat.us',
timeout: 1000,
auth: {
username: 'bar-service-user',
password: 'bar-service-password'
},
{
"name": "Anas Tawfeek",
"age": 28,
"address": "Somewhere"
}