Skip to content

Instantly share code, notes, and snippets.

View kaungmyatlwin's full-sized avatar

Kaung Myat Lwin kaungmyatlwin

View GitHub Profile
@kaungmyatlwin
kaungmyatlwin / validateCard.js
Last active June 5, 2023 11:11
Card validation (Luhn's Algorithm) in Javascript
function validateCard(digitLength, cardVal){
var reverseDigits = cardVal
.substring(0, digitLength - 1)
.split('')
.reverse();
var lastDigit = Number(cardVal.substring(digitLength - 1, digitLength));
var reducedDigits = [];
var normalDigits = [];
for(var i = 0, j = Math.ceil(reverseDigits.length / 2); i < j; i++) {
var digit = reverseDigits[i * 2] * 2;
{"version":1,"resource":"vscode-userdata:/Users/kaungmyatlwin/Library/Application%20Support/Code/User/settings.json","entries":[{"id":"jslQ.json","timestamp":1650265248517}]}
@kaungmyatlwin
kaungmyatlwin / NavigationBlocker.js
Last active August 18, 2021 16:38
React Navigation Blocker with React Router Prompt. Usage included.
import React, { useEffect } from 'react';
import { Prompt } from 'react-router-dom';
export default ({ shouldBlockNavigation = false, message = '' }) => {
useEffect(() => {
if (shouldBlockNavigation) {
window.onbeforeunload = () => true;
} else {
window.onbeforeunload = null;
}
@kaungmyatlwin
kaungmyatlwin / myanmar_regions.js
Last active June 25, 2020 05:15
Myanmar Regions and Townships compatible with MIMU standards
module.exports = [{
region_pcode_idx: 1,
name_en: 'Kachin',
name_mm: 'ကချင်ပြည်နယ်',
region_pcode: 'MMR001',
type: 'state',
}, {
region_pcode_idx: 2,
name_en: 'Kayah',
name_mm: 'ကယားပြည်နယ်',
const router = require('express').Router();
const upload = require('./upload')('./cats');
router.post('/', upload.array('photos', 10), (req, res) => {
// handle logic
res.send('ok');
});
module.exports = router;
@kaungmyatlwin
kaungmyatlwin / cats.js
Last active June 12, 2020 17:15
Refactoring Multer diskStorage instance using Javascript Closures (before refactor)
const router = require('express').Router();
const multer = require('multer');
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, './cats');
},
filename: (req, file, cb) => {
const fname = `${Date.now()}-${encodeURIComponent(file.originalname)}`;
cb(null, fname);
@kaungmyatlwin
kaungmyatlwin / protrait_or_landscape.js
Last active December 6, 2019 11:10
Detect Image Orientation using Promise
function detectPhotoDimensions(photoFile) {
const fr = new FileReader();
fr.readAsDataURL(photoFile);
const orientationPromise = new Promise((resolve) => {
fr.onload = () => {
const img = new Image();
img.src = fr.result;
img.onload = () => {
(img.width < img.height) ? resolve(1) : resolve(2)
};
@kaungmyatlwin
kaungmyatlwin / multiple_db_connection.js
Created December 6, 2019 11:09
Connect to multiple database connects with MongoDB client.
const config = require('config');
const MongoClient = require('mongodb').MongoClient;
const { host } = config.get('dbConfig');
const mongoIp = process.env.NODE_ENV === 'production' ? host : 'localhost';
class Connection {
static databases = {};
static connectToMongo(dbName: string, options: object) {
import React from "react";
import ReactDOM from "react-dom";
import EditableText from "./EditableText";
import "./styles.css";
function App() {
return (
<div className="App">
<h1>Editable Text Demo</h1>
import React from "react";
import ReactDOM from "react-dom";
import EditableText from "./EditableText";
import "./styles.css";
function App() {
return (
<div className="App">
<h1>Editable Text Demo</h1>