Skip to content

Instantly share code, notes, and snippets.

@manuelj555
manuelj555 / GlobalConfirm.jsx
Last active February 2, 2024 03:11
React component for Confirmations Modals
import React, { useState, useSyncExternalStore } from 'react'
import { Confirm } from './Confirm'
let syncStatus
let confirmOptions = {}
export function confirm (onConfirm, { question, ...modalProps } = {}) {
if (!syncStatus) {
throw new Error('Please Include the GlobalConfirm componente in your Tree')
}
@manuelj555
manuelj555 / gist:f744bece917816bb47b920a6e949fb54
Created November 27, 2023 22:53
Eslint config for React
module.exports = {
extends: [
'plugin:react/recommended',
'standard'
],
overrides: [],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
ecmaFeatures: {
@manuelj555
manuelj555 / basic_components.js
Last active October 3, 2023 00:45
Dependencias para proyecto con Expo (React Native)
// src/components/ui
export const StyledText = forwardRef(({ style, ...props }, ref) => {
// Añadir font y estilos basicos para todos los textos
return (
<Text ref={ref} className='' style={style} {...props} />
)
})
// src/components/ui/buttons Para tener botones
export function Button ({
@manuelj555
manuelj555 / confdep
Last active July 11, 2018 19:13
Estos son bash para agilizar el manejo de git en proyectos paralelos
#!/bin/sh
currentBranch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
prefix=(${currentBranch//\// })
if [ $prefix == 'hotfix' ] || [ $prefix == 'release' ]; then
version=$(git branch | sed -n -e 's/^\* '$prefix'\/\(.*\)/\1/p');
text='s/'$prefix'\/[0-9][^\"]*/'$prefix'\/'$version'/g'
sed -i $text .gitlab-ci.yml
echo "Ajustando el deploy del "$prefix" del .gitlab-ci.yml a la version "$version
git commit .gitlab-ci.yml -m "Ajustando deployment de la rama $prefix"
else
@manuelj555
manuelj555 / gulpfile.js
Last active January 21, 2017 16:51
Paquetes para trabajar con gulp+vuejs
var gulp = require('gulp');
var babel = require('gulp-babel');
var gulpif = require('gulp-if');
var gutil = require('gulp-util');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var nano = require("gulp-cssnano");
var browserify = require('browserify');
var babelify = require('babelify');
var vueify = require('vueify');
@manuelj555
manuelj555 / test.php
Last active May 5, 2016 13:09
Prueba de lectura de controladores de src/AppBundle en un proyecto Symfony2 (este php debe ir en web para efectos del ejemplo)
<?php
use Symfony\Component\Finder\Finder;
/**
* @var Composer\Autoload\ClassLoader
*/
$loader = require __DIR__.'/../app/autoload.php';
include_once __DIR__.'/../app/bootstrap.php.cache';
@manuelj555
manuelj555 / README.md
Last active July 25, 2016 13:00
Archivos minimos para usar Gulp.js en Symfony.

Instalando Gulp para los Assets

Se debe instalar https://nodejs.org si no se ha instalado aun, luego abrir la consola de windows o git bash y en la raiz del proyecto ejecutar:

node install

Con esto se instalaran las dependencias necesarias para usar Gulp.

Ahora se debe ejecutar en la raiz del proyecto el comando:

@manuelj555
manuelj555 / MyCustomRepositoryFactory.php
Created July 3, 2015 18:55
Creando un Factory de repositorios de doctrine propio
<?php
namespace AppBundle\Doctrine;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Repository\DefaultRepositoryFactory;
use Doctrine\ORM\Repository\RepositoryFactory;
class MyCustomRepositoryFactory implements RepositoryFactory
{
@manuelj555
manuelj555 / angular.sf-form.js
Last active August 29, 2015 14:24
Uso de colecciones de formularios con angularjs
angular.module('sf-form', []).directive('sfFormCollection', function ($compile, $log, $sce) {
return {
restrict: 'A',
compile: function (element, attrs) {
var prototypeRow = attrs.prototype;
return function (scope, element, attrs) {
scope.add = function () {
$row = angular.element(prototypeRow.replace(/__name__/g, scope.index));
@manuelj555
manuelj555 / flashes.html.twig
Last active November 28, 2016 19:58
Symfony Flashes Twig
{% if app.request.hasPreviousSession and app.session.flashBag.peekAll|length > 0 %}
{% set type_alias = {
error: 'danger'
} %}
<div class="row">
<div class="col-sm-12">
{% for type, messages in app.session.flashbag.all %}
{% for message in messages %}
<div class="alert alert-{{ type_alias[type]|default(type) }} alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>