define([ 'js/instafeed', 'jquery', 'mageUtils' ], function(Instafeed, $, utils) { 'use strict'; var wrapperTemplate = '
{{content}}
', itemTemaplet = '{{title}}'; return function(config, element) { var $element = $(element), instagramConfig = utils.extend({ 'accessToken': config.accessToken, 'get': 'user', 'userId': config.userId, 'sortBy': 'most-recent' }, config, { 'mock': true, 'success': iSuccess.bind(null, $element), 'error': iError.bind(null, $element) }), feed = new Instafeed(instagramConfig); $element.addClass('_loading'); feed.run(); }; function iSuccess($element, data) { var content = '', images = data && data.data || []; images.forEach(function(image) { if (image && image.caption !== null) { content += itemTemaplet .replace(/\{\{src\}\}/gi, image.images.standard_resolution.url) .replace(/\{\{title\}\}/gi, image.caption.text) .replace(/\{\{href\}\}/gi, image.link); } }); content = wrapperTemplate.replace('{{content}}', content); $element .removeClass('_loading') .addClass('_loaded') .html(content); } function iError($element, message) { $element.removeClass('_loading').addClass('_failed'); console && console.log && console.warn('DD Instagram feed. Error from Instagram: ' + message); } });