Skip to content

Instantly share code, notes, and snippets.

View just-jeb's full-sized avatar
🌐
Having fun @ Wix

JeB just-jeb

🌐
Having fun @ Wix
View GitHub Profile
{
"name": "Great Extension",
"version": "1.0",
"description": "Build an Extension with Angular",
"manifest_version": 3
}
@just-jeb
just-jeb / ListItem.tsx
Last active December 20, 2021 10:18
React Profiler Lab Rat optimized
export const ListItem: FC<ListItemProps> = memo(({value}) => <div className={'item'}>{value}</div>)
@just-jeb
just-jeb / FilterableList.tsx
Created December 9, 2021 13:12
React Profiler Lab Rat semi optimized
const items = Array.from({ length: 200 }, (_, index) => ({ value: `${chance.integer()}`, id: index}));
export const FilterableList = () => {
const [searchTerm, setSearchTerm] = useState('');
return <div className={'filterableList'}>
<Filter onValueUpdated={setSearchTerm} />
<List entries={items.filter(item => item.value.includes(searchTerm))} />
</div>
}
@just-jeb
just-jeb / FilterableList.tsx
Last active December 9, 2021 13:36
React Profiler Lab Rat not optimized
const items = Array.from({ length: 200 }, () => `${chance.integer()}`);
export const FilterableList = () => {
const [searchTerm, setSearchTerm] = useState('');
return <div className={'filterableList'}>
<Filter onValueUpdated={setSearchTerm} />
<List entries={items.filter(item => item.includes(searchTerm))} />
</div>
}
@just-jeb
just-jeb / is-permitted-hook.tsx
Created August 16, 2021 11:45
Custom Hook with Context (the hook)
import React, { useContext } from 'react';
import { PermissionsContext } from '@contexts/permissions';
export const useIsPermitted = () => useContext(PermissionsContext);
@just-jeb
just-jeb / context.tsx
Last active August 24, 2021 07:48
Custom Hook with Context
import React, { createContext, useMemo } from 'react';
import { Permissions, usePermissions } from '@hooks/permissions';
export const PermissionsContext = createContext({});
export const IsPermittedProvider: React.FC = ({ children }) => {
const permissions = usePermissions();
const permissionsDictionary = useMemo(() => ({
isEditPermitted: permissions.includes(Permissions.EDIT_SITE_PERMISSION),
}), [permissions]);
@just-jeb
just-jeb / pure-hook-optimized.tsx
Last active August 24, 2021 07:49
Pure hook optimized
import React, { useMemo } from 'react';
import { Permissions, usePermissions } from '@hooks/permissions';
const useIsPermitted = () => {
// usePermissions is another custom hook that returns an array of permissions
const permissions = usePermissions();
return useMemo(() => ({
isEditPermitted: permissions.includes(Permissions.EDIT_SITE_PERMISSION),
}), [permissions]);
}
@just-jeb
just-jeb / edit-button.tsx
Created August 16, 2021 11:03
Custom hook usage
import React from 'react';
export const EditButton = () => {
const { isEditPermitted } = useIsPermitted();
return <button disabled={!isEditPermitted}>Edit</button>
}
@just-jeb
just-jeb / angular.json.js
Created July 15, 2021 10:09
angular-json-no-hash
"architect": {
"build": {
...
"configurations": {
"production": {
...
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
@just-jeb
just-jeb / embed-gist-dark-theme.css
Last active November 30, 2024 11:12
Dark theme gist embed for blog
<style>
/* https://github.com/lonekorean/gist-syntax-themes */
@import url('https://cdn.rawgit.com/lonekorean/gist-syntax-themes/d49b91b3/stylesheets/idle-fingers.css');
@import url('https://fonts.googleapis.com/css?family=Open+Sans');
body {
font: 16px 'Open Sans', sans-serif;
}
body .gist .gist-file {
border-color: #555 #555 #444