, but this code // executes before the first paint, when

ÃÛÌÒapp

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); When Helping Heals - News & Stories | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Publications

When Helping Heals

Sun, Jan 15, 2017
Tracy Kuperus,Roland Hoksbergen

Over the last few decades, evangelical Christians in the United States have moved from an open embrace of development work (e.g. short term missions, poverty alleviation strategies like microenterprise, child sponsorship) to a more critical assessment (e.g. When Helping Hurts, Serving with Eyes Wide Open, Poverty Inc.).

These strategic shifts are not new. Scholars writing within the field of international development have entertained these debates for quite some time, but evangelical Christians have recently gotten very interested in the conversation. The problem is that the two sides in the debate do not capture well the reality or the prospects of international development.

In this ÃÛÌÒapp Short, Roland Hoksbergen and Tracy Kuperus review the field of international development from both secular and Christian perspectives. They explain why this debate has developed and then provide a more balanced picture. A core theme is that development work should and can be done, but it must be done wisely and well if it is to be truly constructive.

5 Questions with the Authors

Tracy Kuperus answers 5 questions about her inspiration for this book and what led her into international development.

Roland Hoksbergen answers 5 questions about his journey into international development too.